cannot convert from 'struct LNode *' to 'int'

#include<stdio.h>typedefstructLNode{intdata;structLNodenext;//此处必须用指针么?}Node,*LinkLis... #include <stdio.h>
typedef struct LNode{
int data;
struct LNode next;//此处必须用指针么?
}Node,*LinkList;
void main()
{
Node *p=NULL,*q=NULL;
p->next=q;//为什么是 'struct LNode *' to 'int'的错误,望详细些
}
展开
 我来答
arongustc
科技发烧友

2012-08-03 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:6060万
展开全部
当然,否则第一LNode的大小是无穷大的,第二你这个赋值类型也不兼容,q是指针,next又不是指针,为什么能赋值
追问
有意思,为什么是无穷大,以前没听说过啊,望解释。
追答
你的LNode结构的定义导致LNode结构内部包含一个完整的自己(next),而这个对象的内部又包含一个自己,这样你的对象必须无限延展下去,永远没有尽头,所以其尺寸无穷大
传说中的jkkkls
2012-08-03 · TA获得超过359个赞
知道小有建树答主
回答量:427
采纳率:0%
帮助的人:321万
展开全部
对,必须用指针,指向它的下一个节点的地址
追问
详细些啊
追答
链表就是节点依靠下一个节点的地址,把所有节点连接起来,这种链表比较适合插入和删除。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友1cf58ab
2012-08-04 · TA获得超过343个赞
知道小有建树答主
回答量:276
采纳率:50%
帮助的人:368万
展开全部
在定义 LNode 结构时,其中的成员 next 又是 LNode 结构,也就是说,这是一个无穷递归的过程,LNode 的结构就是无穷大了。
如果把 struct LNode next; 写成 struct LNode* next;就不再递归定义了。
而 p->next=q;这个也不对,因为 Node *p=NULL 说明 p 是一个空指针,根本就不存在 p->next。
按以下改写可以成立:
#include <stdio.h>
typedef struct LNode
{
int data;
struct LNode* next;//此处必须用指针
}Node,*LinkList;
void main()
{
Node* p=(Node*)malloc(sizeof(Node));
Node* q=NULL;
p->next=q;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式