C언어 Define 헷갈려서 질문드려요
늘솔길
질문 제목 :c언어 define 헷갈려서 질문드려요
typedef struct {
char name[20];
int age;
char phone[20];
} customer; // 회원 구조체
int main(void) {
char *name = (char*)malloc(sizeof(char)*size);
}
위의 내용은 동적 할당이 되는것으로 아는데.. 제가 짠 코드중에서는..
질문 내용 :
제1 안건
// 고객 변수(struct)
#define i_cage_size 8
#define c_cname_size 20
#define c_cpnumber_size 20
#define c_caddress_size 40
typedef struct gogak{
char i_cage[i_cage_size];
char c_cname[c_cname_size];
char c_cpnumber[c_cpnumber_size];
char c_caddress[c_caddress_size];
}gogak;int main(void)
{
/*gogak *a;
a=(gogak*)malloc(sizeof(gogak));
puts();
printf(이름 : );
gets(a-c_cname);
puts();
printf(번호 : );
gets(a-c_cpnumber);
puts();
printf(주소 : );
gets(a-c_caddress);
puts();
printf(나이 : );
gets(a-c_cage);
puts();
수다님의 이름은 %s이며, 나이는 %s이며, 번호는%s이며, 주소는 %s입니다., a-c_cname, a-c_cage, a-c_cpnumber, a-c_caddress);
free(a);
}
위의 코드가 실행이 되는데.. 결국은.. 이름란은.. 항상 건너뛰더라구요.. 다른건 다 되는데.. 이름란은.. gets, scanf_s, fputs, getchar() 별의별거를 다 써봐도.. 항상 이름란을 띄고 시작하더라구요.. 번호와 이름을 바꿔보아도 결과는 항상 첫번째 입력란은 입력을 못받게 되고..
동적할당에서 잘못된거 같은데.... 혹시 아시는분 해서요.. 도움받을수 있을까 해서요..
-
FaintTears
감사합니다 ㅠ ㅠ