malloc

익명 사용자의 이미지

struct fruit {
char *name;
char *place;
} my_fruit;
라고 선언한 구조체를 사용한경우..
malloc를 어떻게 선언해야 합니까?

익명 사용자의 이미지

용도를 짐작하건데, 각 포인터 변수마다 각각 쓰셔야 겠네요.

익명 사용자의 이미지

저는
struct my_fruit *temp;
temp=(struct my_fruit *)malloc(sizeof(struct my_fruit));

그리고
temp->name=(char *)malloc(할당크기);
temp->place = (char *) malloc(할당크기);

이렇게 사용합니다.

struct fruit {
char *name;
char *place;
} my_fruit;
라고 선언한 구조체를 사용한경우..
malloc를 어떻게 선언해야 합니까?

[ 관련글 ]

익명 사용자의 이미지

struct fruit {
char *name;
char *place;
} my_fruit;

배석준님의 답변도 맞구요.

그 경우에는 반드시 free(temp->name), free(temp->place)하신후,
free(temp);를 하셔야 겠죠?

그 방법 말고, 다른 방법은,

struct my_fruit temp;

temp.name = (char *) malloc (원하는 사이즈)
temp.place = (char * ) malloc (원하는 사이즈)

끝낼때는,

free(temp.name);
free(temp.place);

이러면 되겠죠?

이 방법과 저 방법의 차이는...? 아시겠죠?

그럼 건투를 빕니다. ^^;