【发布时间】:2016-12-21 18:36:08
【问题描述】:
我有一个这样定义的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");
但这给了我一个分段错误。有人可以帮我解释为什么会这样吗?是否有一些我没有做但我需要做的内存管理?
【问题讨论】:
-
请发帖Minimal, Complete, and Verifiable example。在初始化
treeptr->head(companyStructure.head) 之前,您不能取消引用它。 -
你在哪里创建
treeptr->head指向的NODE结构?也发布该代码。 -
不要将
struct <name>和typedef名称混用为同一类型!这让任何读者都感到困惑。并且只对宏和枚举常量使用全大写名称。 -
在我看来,名为 head 的 treeptr 成员尚未初始化。您必须先将 companyStructure.head 设置为某个值。
标签: c arrays struct char strcpy