2 sinat 22328783 sinat_22328783 于 2015.06.09 23:07 提问

对链表头写入next,一直显示0xC0000005: 写入位置 0x00000068 时发生访问冲突

代码如下
#include
#include
#define ElementType int

typedef 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;
}

3个回答

devmiao
devmiao   Ds   Rxr 2015.06.09 23:16

l_temp就没有分配空间

sinat_22328783
sinat_22328783 看楼下
2 年多之前 回复
sinat_22328783
sinat_22328783 int main() { int k,N,i; List *l; scanf("%d%d%d",&PtrL,&N,&k); for(i=0;i<N;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<N;i++) { printf("%d %d %d",l,l->Data,l->Next); l=l->Next; } return 0; }
2 年多之前 回复
sinat_22328783
sinat_22328783 那个比较乱,你看看这个
2 年多之前 回复
sinat_22328783
sinat_22328783 l=(List *)l_temp;这句有写进去啊,l也有值
2 年多之前 回复
sinat_22328783
sinat_22328783   2015.06.09 23:30

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;
}

frank_20080215
frank_20080215   2015.06.10 07:29

也就是0X00000094地址不允许写,这是典型的运行时错误。你好好检查你的代码,肯定有问题,比如数组越界等。

Csdn user default icon
上传中...
上传图片
插入图片