구조체 동적할당 질문이요~
예린
2023.04.01
질문 제목 : 구조체 동적할당 질문이요~구조체를 정의하고 바로 밑에 구조체포인터 변수 이용 동적할당을 하였더니
이니셜라이저 상수가 아니라는 에러메시지와 함께 에러를 발생합니다. 하지만 main문 안으로 동적할당 위치를 바꿔주면 에러가 안나구요. 구조체정의를 아예 main문 안에다가 하고 바로밑에 동적할당을 하여도 에러가 나지 않습니다.
이유를 모르겠네요 ㅜㅜ 알려주세요 고수님~!질문 내용 :
-------------------------------------------------소스입니다.
#include stdio.h
#include stdlib.h
#define ea 1
typedef struct
{
char name[10];
char writer[10];
int page;
}book;
book *abc = (book*)malloc(sizeof(book)*ea);
int main(void)
{
//book *abc = (book*)malloc(sizeof(book)*ea);
return 0;
}
-----------------------------------------------------------------
-
큰길
그런건가..; 좋은답변 감사합니다
-
수예
malloc()도 함수입니다. 따라서 함수 밖에서 불러올수가 없죠
그냥 선언만 밖에서 하고 할당은 main함수 내에서 해야합니다.