以下是一个建立链表程序。我是新手编的有错误,请高手指出
#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));
应该是这样子吧...
----------------解决方案--------------------------------------------------------
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));
----------------解决方案--------------------------------------------------------
你说的TYPE-类型,LEN-长度。
你说的你看的那个人,他的程序中应该有
#define TYPE "类型";
#define LEN “长度”;
这是宏定义用TYPE,LEN来分别代替“类型”,和“长度”;
这样如果要修改TYPE的话只要在宏定义的时候修改下就行了。。。
谢谢 `` 可能是那人源码没写全,所以我没有看见有定义。
因而我还已为是我没有看见过的什么类型函数呢
----------------解决方案--------------------------------------------------------