구조체 멤버로 문자열을 받을때 질문입니다.
두빛나래
2023.04.01
질문 내용 :
구조체의 멤버인 포인터 변수를 이용하여 문자열을 받을 때 에러가 나서 질문 올립니다.
#define MAN_MAX 5
#typedef struct man
{
int i_age;
char *pname;
} MAN;
int main()
{
MAN *ptr=NULL;
int i;
ptr=(MAN*)malloc(sizeof(MAN)*(MAN_MAX)); //구조체 동적 메모리 할당
for(i=0; iMAN_MAX; i++) //구조체 포인터 멤버의 동적 메모리 할당
ptr[i].pname=(char*)malloc(sizeof(char));
scanf(%d, &ptr[i].i_age); //입력 성공
scanf(%s, ptr[i].pname); //입력 에러
for(i=0; iMAN_MAX; i++)
free(ptr[i].pname);
free(ptr);
return 0;
}
int형은 입력이 성공하는데 문자열은 입력이 안되어서 질문 드립니다.
문자열 입력을 위해 메모리 동적 할당을 하였습니다.
메모리 동적할당과 무엇인가 관련이 있는것 같은데...ㅋㅋ
고수님들 도와주세요.