尝试将值放入标签时,list->qtag->label=x; 中的错误在哪里?
struct quad{
int label;
char op[30];
char x[30];
char y[30];
char z[30];
struct quad *next;
};
struct tag{
struct quad *qtag;
struct tag *next2;
};
struct tag *makelist(int x){
struct tag *list;
list=(struct tag*)malloc(sizeof(struct tag));
list->qtag->label=x;
printf("!\n");
return list;
};
最佳答案
您没有在列表
中初始化该qtag
。可以这样修复:
list=(struct tag*)malloc(sizeof(struct tag));
list->qtag = (struct quad*)malloc(sizeof(struct quad));
list->qtag->label = x;
不要忘记检查 malloc()
的返回值是否存在可能的错误。
关于C - 结构传递值 - 段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23456126/