首页
社区
课程
招聘
链表的一些问题
发表于: 2010-3-29 19:16 2550

链表的一些问题

2010-3-29 19:16
2550
#include <stdio.h>
#include <malloc.h>
#define datatype int
#define max 100
typedef struct link
{
	datatype data;
    struct link *next;

}linklist;
void init(linklist * s)
{	linklist t;
	s=(linklist *)malloc(sizeof(t));
}
void insert(linklist *s,int sorce,int d)
{
		linklist *p,*t;int i=1;
		p=s;
		while(i<sorce)
		{
			p=p->next;
			i++;
		}
		
		while(p->data!=NULL)
		{
			t->data=d;
			t->next=p->next;
			p->next=t;
		}
}
void scan(linklist *s)
{
	linklist *p,*t;
	p=s;
	t=(linklist *)malloc(sizeof(t));
	printf("please inster the Number:\n");
	for(int i=0;i<10;i++)
	{	
		
		scanf("%d",&t->data);
	    p->data=t->data;
		p->next=t;
	}
}
void print(linklist *s)
{
	while (s->next!=NULL)
	{
		printf("%d ",s->data);
		s=s->next;
	}
}
int main()
{
	 
	linklist *p;
	init(p);
	scan(p);
	insert(p,2,6);
	print(p);
	return 0;
}


出现内存地址错误。请各位大侠帮一下忙

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 458
活跃值: (421)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
2
void insert(linklist *s,int sorce,int d)
{
linklist *p,*t;int i=1;
p=s;
while(i<sorce)
{
p=p->next;
i++;
}

while(p->data!=NULL)
{
t->data=d;
t->next=p->next;
p->next=t;
}
}


t是野指针  没有初始化  当然会崩溃。。。
2010-3-29 19:25
0
雪    币: 181
活跃值: (134)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
3
void insert(linklist *s,int sorce,int d)
{
                linklist *p,*t;int i=1;
                p=s;
                t=init(t); //初始化了。还会出错
                while(i<sorce)
                {
                        p=p->next;
                        i++;
                }
               
                while(p->data!=NULL)
                {
                        t->data=d;
                        t->next=p->next;
                        p->next=t;
                }
}

#include <stdio.h>
#include <malloc.h>
#define datatype int
#define max 100
typedef struct link
{
	datatype data;
    struct link *next;

}linklist;
linklist * init(linklist * s)
{	linklist t;
	s=(linklist *)malloc(sizeof(t));
	return s;
}
void insert(linklist *s,int sorce,int d)
{
		linklist *p,*t;int i=1;
		p=s;
		t=init(t);
		while(i<sorce)
		{
			p=p->next;
			i++;
		}
		
		while(p->data!=NULL)
		{
			t->data=d;
			t->next=p->next;
			p->next=t;
		}
}
void scan(linklist *s)
{
	linklist *p,*t;
	p=s;
	t=(linklist *)malloc(sizeof(t));
	printf("please inster the Number:\n");
	for(int i=0;i<10;i++)
	{	
		
		scanf("%d",&t->data);
	    p->data=t->data;
	    p->next=t;
	}
}
void print(linklist *s)
{
	while (s->next!=NULL)
	{
		printf("%d ",s->data);
		s=s->next;
	}
}
int main()
{
	 
	linklist *p;
	p=init(p);
	scan(p);
	insert(p,2,6);
	print(p);
	return 0;
}
2010-3-29 19:33
0
雪    币: 132
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
我不太明白你的下面两段代码的作用是什么,麻烦给解释一下

while(p->data!=NULL)
{
t->data=d;
t->next=p->next;
p->next=t;
}

for(int i=0;i<10;i++)
{

scanf("%d",&t->data);
p->data=t->data;
p->next=t;
}

2010-3-30 08:47
0
游客
登录 | 注册 方可回帖
返回
//