-2
에서 배열의 사용 가능한 메모리 :할당하고 나는 구조 다음 한 구조
typedef struct
{
char *name[10];
char *msg[100];
} Log;
내가 로그 구조에서 이름과 MSG 배열을 어떻게 확보 할 수 있는가? 저는 자유가 동적 할당에만 사용된다는 것을 알고 동적 할당은 구조에서 작동하지 않습니다. 내가 할 수있는 것?
이를 Tryed하지만 오류 제공 :
typedef struct
{
char *name[] = (char *)malloc(sizeof(char) * 10);
char *msg[] = (char *)malloc(sizeof(char) * 100);
} Log;
가 나를 도울 수 있습니까? 감사합니다.
당신은 C++로 태그를 붙 였지만 코드가 가장 확실합니다. 어떤 대답을 원하십니까? – TartanLlama
다릅니다. 우선,'char * x []'는 char-ptr 배열입니다. 'char * name [10]'은 당신이 원하지 않는 10 개의 char ptrs를 할당합니다. 'typedef struct {char name [10]; char msg [100];} Log;'는이 필드를 구조체에 인라인으로 할당합니다 ('sizeof (Log)> = 110'). 그렇지 않으면 구조체에 대해 초기화 및 정리 기능을 제공해야합니다. 개인적으로, 그런 경우에는 사용자가 핸들과 만 상호 작용하고 구조체는 직접적으로 사용하지 않게합니다. – IdeaHat
'sizeof (char)'는 정의 1에 해당하므로 쓰지 마십시오. 또한, [malloc (및 친구들)의 결과를 캐스팅하지 마십시오] (http://stackoverflow.com/q/605845). – Deduplicator