Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 使用“->”使用指针导航结构_C_Macos_Gcc_Textedit - Fatal编程技术网

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

C 使用“->”使用指针导航结构,c,macos,gcc,textedit,C,Macos,Gcc,Textedit,我正在尝试创建一个电话簿,它是一个二进制搜索树,在每个叶子的末尾都有一个链接列表,但是,我遇到了一个分段错误。我觉得这是由makenode函数引起的,它创建了树的第一个节点。我的结构如下 typedef struct number{ char number [20]; struct number *next; } Number; typedef struct list { Number *first, *last; } List; typedef struct tr

我正在尝试创建一个电话簿,它是一个二进制搜索树,在每个叶子的末尾都有一个链接列表,但是,我遇到了一个分段错误。我觉得这是由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);
线路是否导致了问题,以及关于它导致问题的原因的一些建议。
提前感谢。

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


为什么不使用调试器?如果这样做,您将在抛出异常的行处停止。所以请使用你已经拥有的工具!很抱歉我是初学者,但是,我该如何使用调试器呢?它是内置在GCC中的吗?是的,因为newnode缺少内存->next@ElisJones,查找GDBit甚至不编译,newnode->next没有名为number的成员,只有first和last。
    newmode->next = malloc(sizeof(LIST));