我这样定义struct TREE
:
typedef struct TREE {
NODE *head;
} TREE;
和struct NODE
定义为:
typedef struct NODE {
char boss[30];
char name[30];
struct NODE *firstChild;
struct NODE *secondChild;
struct NODE *thirdChild;
struct NODE *fourthChild;
} NODE;
在我的主要内容中,我有:
TREE companyStructure;
TREE *treeptr;
treeptr = &companyStructure;
strcpy(treeptr->head->name, "Ben");
但是这给了我一个分段错误。有人可以帮我解释为什么会这样吗?是否有一些我不需要做的内存管理我需要做什么?
答案 0 :(得分:2)
为止,
treeptr = &companyStructure;
事情看起来不错。但后来考虑到你有
的事实NODE *head;
您需要为head
分配内存。所以很可能你错过了
treeptr->head = malloc(sizeof *treeptr->head);
之前
strcpy(treeptr->head->name, "Ben");
另外,请检查[ this ],了解为什么要使用strncat
代替strcpy
。