나는 코스라는 구조체가 있고 각 코스에는 여러 개의 노드가 있습니다 (다른 구조체 '노드').구조체의 구조체 malloc 배열
노드의 개수는 다양하지만이 정보를 읽는 파일에서 해당 번호가 제공되므로 번호가 변수에 저장됩니다.
그래서 struct 내부에 malloc이 필요합니다. 그러나 나는 혼란 스럽다. 구조체에 배열을 가질 수 있지만 구조체가 내 헤더 파일에 있기 때문에 malloc 배열을 만드는 코드를 어디에 두어야할지 모르겠다. 지금 내 코드가 있습니다. 잘못되었다는 것을 깨달았습니다. malloc 배열을 고칠 수있는 방법과 malloc 배열을 초기화하는 위치를 모르겠습니다.
struct course {
char identifier[2];
int num_nodes;
struct node *nodes;
nodes = (struct nodes*)malloc(num_nodes*sizeof(struct node));
};
struct node {
int number;
char type[2];
};
내가 같은 것을 할 수 있어야합니다 :
나는 많은 C 사용하지 않은 ...
struct node a_node;
struct course a_course;
a_course.nodes[0] = a_node;
등이 내가했습니다 처음 시간 C에서 동적 배열을 사용해 보았습니다. 제 경험은 모두 Java에서 비롯되었으며, 물론 Java는 C와 같은 방식으로 포인터를 사용하지 않으므로 혼란 스럽습니다.
그래서 도움이 많이 주시면 감사하겠습니다, 감사 많은 :
이
한 가지 방법은 simonc이 그의 대답에서 설명하는 것처럼하는 것입니다.난 그냥 malloc 전화를 넣어 귀하의 질문에 대답하고 싶습니다 : 바로 당신이 메인 구조체에 메모리를 할당 후 바로하십시오. 가짜 :'a = malloc (mother_struct); a-> baby = malloc (baby_struct);':-) – Jite