当前位置: 代码迷 >> C语言 >> [求助]链表建立中的错误?
  详细解决方案

[求助]链表建立中的错误?

热度:225   发布时间:2007-05-17 18:09:16.0
[求助]链表建立中的错误?

以下是一个建立链表程序。我是新手编的有错误,请高手指出
#include<stdlib.h>
#include<string.h>
#include<stdio.h>
struct node
{ int date;
struct node *next;};

struct node * create() \*开始建立链表*\
{struct node *head,*tail,*p;int x; \*定义头指针head及中间指针tail*\
head=tail=NULL;
scanf("%d",&x);
while(x!=0)
{p=(struct node *)malloc(20);
(我觉得这个地方有点错误)
p->date=x;
p->next=NULL;
if(head==NULL) head=tail=p;
else
{ tail->next=p;
tail=p;}
scanf("%d",&x);}
return(head);}

void main()
{
struct node *q;
q=create();

}

搜索更多相关的解决方案: 链表  

----------------解决方案--------------------------------------------------------
p=(struct node *)malloc(sizeof(struct node));
应该是这样子吧...

----------------解决方案--------------------------------------------------------
以下是引用ibiancheng在2007-5-17 18:42:58的发言:
p=(struct node *)malloc(sizeof(struct node));
应该是这样子吧...

非常感谢你,我的问题已经解决。但我想问一下
p=(TYPE *)malloc(sizeof(LEN)); 我看见有人这样定义,当然他的建立链表函数也定义成TYPE * create
程序中的TYPE,LEN都是什么意思啊


----------------解决方案--------------------------------------------------------

你说的TYPE-类型,LEN-长度。
你说的你看的那个人,他的程序中应该有
#define TYPE "类型";
#define LEN “长度”;
这是宏定义用TYPE,LEN来分别代替“类型”,和“长度”;
这样如果要修改TYPE的话只要在宏定义的时候修改下就行了。。。


----------------解决方案--------------------------------------------------------
p=(node *)malloc(sizeof(node));
----------------解决方案--------------------------------------------------------
以下是引用ibiancheng在2007-5-19 0:15:14的发言:

你说的TYPE-类型,LEN-长度。
你说的你看的那个人,他的程序中应该有
#define TYPE "类型";
#define LEN “长度”;
这是宏定义用TYPE,LEN来分别代替“类型”,和“长度”;
这样如果要修改TYPE的话只要在宏定义的时候修改下就行了。。。

谢谢 `` 可能是那人源码没写全,所以我没有看见有定义。
因而我还已为是我没有看见过的什么类型函数呢
----------------解决方案--------------------------------------------------------

  相关解决方案