满意答案
liminyang
2014.01.10
要在第二条语句前先创建linklist_2 *类型的变量top2_,和flight *类型的变量data1,
即:
linklist_2 *top2_=(linklist_2 *)malloc(sizeof(linklist_2));
flight *data1=(flight *)malloc(sizeof(flight));
然后
data1->top2=top2_;
top->data=data1;
...
当然,这里要改
typedef struct lnode_1
{
flight *data;//"航班信息"实际数。这里改下!!! flight *data;
lnode_1 *next;//指向下一个节点的指针
}linklist;//存储"航班信息"的链表
时间有点晚,没测试,如果不行的话追问哦!谢谢!明天可以测试下!追问: 额,好像还是不行,我是觉得在为top指针分配空间时就包含为data,以及data里的top分配空间了,你的初始化top2指针的思路是什么啊??
追答:因为malloc只分配变量所占内存的大小,变量里面并没有内容!
top->data.top2->next=NULL;
你这句显然是访问了变量top里的内容了!
top里面没有内容,怎么访问?
linklist* top=(linklist*)malloc(sizeof(linklist));
top->next=NULL;
flight* data1=(flight *)malloc(sizeof(flight));
top->data=data1;
linklist_2* top2_=(linklist_2 *)malloc(sizeof(linklist_2));
data1->top2=top2_;
top->data->top2->next=NULL;
这样就ok了!
注意哦,申请变量空间和赋值的区别!希望对你有帮助,谢谢!
00分享举报