使用“ - >”用指针导航结构

时间:2014-11-25 14:25:26

标签: c macos gcc textedit

我正在尝试创建一个电话簿,这是一个二叉搜索树,每个叶子的末尾都有一个链表,但是,我遇到了“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);

是造成问题的线,也许是一些关于它导致问题的建议。 提前谢谢。

1 个答案:

答案 0 :(得分:2)

分段错误,因为内存未分配给结构LIST

    newmode->next = malloc(sizeof(LIST));