问题描述
- 对链表头写入next,一直显示0xC0000005: 写入位置 0x00000068 时发生访问冲突
-
代码如下
#include
#include
#define ElementType inttypedef struct Node{
int Data;
struct Node *Next;
} List;
List L, *PtrL;void Listinput(List *ptrL,int max)
{
long int i,next_temp,l_temp;
int data_temp;
List *l,*L_temp;//ptrL->Next=l; for(i=0;i<max;i++) { l = (List *)malloc(sizeof(List)); scanf("%5ld%d%5ld",&l_temp,&l->Data,&l->Next); //l = (List *)malloc(sizeof(List)); l=(List *)l_temp; if(i==0) ptrL->Next=l; //l->Data=(int)data_temp; //l->Next=(List *)next_temp; }
}
int main()
{
int k,N,i;
long int next_temp,l_temp;
int data_temp;
List *l;
scanf("%d%d%d",&l_temp,&N,&k);
PtrL = (List *)malloc(sizeof(List));
PtrL=(List *)l_temp;
PtrL->Next=NULL;
//Listinput(PtrL,N);
//PtrL->Next=l;
//ptrL->Next=l;
for(i=0;i
{
l = (List *)malloc(sizeof(List));
scanf("%5ld%d%5ld",&l_temp,&l->Data,&l->Next);
//l = (List *)malloc(sizeof(List));
l=(List *)l_temp;
if(i==0)
{
PtrL->Next=l; ///////这一行报错
//l->Next=PtrL;
}
//l->Data=(int)data_temp;
//l->Next=(List *)next_temp;
}
l=PtrL;
for(i=0;i
{
l_temp=(int)l;
data_temp=l->Data;
next_temp=(int)l->Next;
printf("%d %d %d",l_temp,data_temp,next_temp);
}
return 0;
}
解决方案
l_temp就没有分配空间
解决方案二:
int main()
{
int k,N,i;
List *l;
scanf("%d%d%d",&PtrL,&N,&k);
for(i=0;i
{
l = (List *)malloc(sizeof(List));
scanf("%5ld%d%5ld",&l,&l->Data,&l->Next);
if(i==0)
{
PtrL->Next=l;
}
}
l=PtrL;
for(i=0;i
{
printf("%d %d %d",l,l->Data,l->Next);
l=l->Next;
}
return 0;
}
解决方案三:
也就是0X00000094地址不允许写,这是典型的运行时错误。你好好检查你的代码,肯定有问题,比如数组越界等。