我正在尝试创建一个电话簿,这是一个二叉搜索树,每个叶子的末尾都有一个链表,但是,我遇到了“Segmentation fault(Core dumped)”错误。我感觉它是由我的“makenode”函数引起的,它创建了树的第一个节点。我的结构如下
typedef struct number{
char number [20];
struct number *next;
} Number;
typedef struct list {
Number *first, *last;
} List;
typedef struct tree {
char name[20];
struct tree * left;
struct tree * right;
List * next;
} Tree;
我的makenode功能是
Tree *makenode (char name[20], Tree *l, Tree *r, Number e) {
Tree *newnode;
newnode = malloc( sizeof(Tree));
strncpy(newnode->name,name,19);
newnode->next=malloc(sizeof(List));
newnode->next->first=malloc(sizeof(Number));
strncpy(newnode->next->first->number,e.number,11);
newnode->left = l;
newnode->right = r;
return newnode;
}
我只是希望得到有关该行的建议
strncpy(newnode->next->number,e.number,11);
是造成问题的线,也许是一些关于它导致问题的建议。 提前谢谢。
答案 0 :(得分:2)
分段错误,因为内存未分配给结构LIST
newmode->next = malloc(sizeof(LIST));