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 看楼下
大约 3 年之前 回复
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; }
大约 3 年之前 回复
sinat_22328783
sinat_22328783 那个比较乱,你看看这个
大约 3 年之前 回复
sinat_22328783
sinat_22328783 l=(List *)l_temp;这句有写进去啊,l也有值
大约 3 年之前 回复
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
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
0xC0000005: 写入位置 0x00000000 时发生访问冲突
错误代码#include<stdlib.h>typedef struct { int *a; }HH;void test(HH *p) { p->a = (int*)malloc(1024); }int main() { HH *p = NULL; test(p); return 0; }我本意是想创建一个结构体,将它以指针的形式传递给函数 在调试代码时第十
有未经处理的异常: 0xC0000005: 写入位置 0x01260000 时发生访问冲突
(1)问题描述。程序运行时候无报错,然后会出现如下图所示的状况。 (2)原因归纳。可能是局部数组空间太大,超过了1M字节,即为1024*1024。vs2010默认堆栈空间大小为1024*1024。 (3)解决方案。          a.缩小申请的数组空间大小。          b.扩大堆栈空间的大小。如下图所示解决方案——属性——链接器——系统——堆栈保留大小——设置为209715
0xC0000005: 写入位置 0x00000000 时发生访问冲突的解决办法
我是新手,其实对这个东西我自己也不是很清楚,当更不可能将有的情况都列举出来,在这里我只是将自己见到的,可能的情况做一个汇总: 上面的意识就是你吧值付给了不该赋给的变量,或者说你把值付给了不能付给的变量(或者常量) (1)最简单也最直接的错误可能就是scanf()的问题,我们都知道输入的时候都是scanf("%格式",&变量),那么除了字符串(可要&,可不要)之外,所有的输入都需要&,如果你
MFC中关于m_pMainWnd = &dlg;处报错的解决方案,针对XX处未处理的异常:0xC0000005:写入位置0x00000020时发生访问冲突
在新建一个MFC基于对话框的工程的时候,一般在工程的源文件下会生成如下代码 CFaceDetectDlg dlg; m_pMainWnd = &dlg; 稍微有点MFC开发经验的都知道这两行代码是为了给m_pMainWnd【该指针为app类里面的关键指针】赋值,保存主窗口指针。 当我们在工程的主窗体中添加成员变量,并添加成员函数进行相应的业务逻辑流程的时候,往往会报如下的错误, XX处未处
VS 2013设置大地址解决地址写入冲突问题 0xC0000005: 写入位置 0x00000014 时发生访问冲突
今天用vc 2008调用matlab相机标定工具箱stereo rectify的DLL,程序运行到一半就挂。 试了N次都是这样。 没办法,写了一个matlab测试程序,测试没问题。 后面想到有没有可能是内存不够,原来在32位机上碰到过这个问题,校正小图可以,换大图(500W像素)就内存不够了。 但现在用的是64位机啊,4GB内存,怎么会不够用呢。 后面再想,32位机只
没有躲过的坑--0xC0000005: 读取位置 xxx时发生访问冲突
Bjarne Stroustrup老爷子说过: “C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off.” 最近的工程时不时的出现0xC0000005: 读取位置 xxx时发生访问冲突,导致崩溃。先看看下面的程序:#includ
0xC0000005: 读取位置 0xfdfdfe01 时发生访问冲突/“Stack Overflow”
访问位置发生冲突,多半是内存分配出现了问题。
...... 处有未经处理的异常: 0xC0000005: 读取位置 0xcccccccc 时发生访问冲突
解决方法:在debug下,未初始化的指针的地址为0xcccccccc , 检查下有没有什么地方使用了未初始化的指针,定位后应该是data指针没有初始化,应对其初始化: unsigned char **data=new unsigned char *[height]; for(int i=0;i { data[i]=new unsigned char [width]; }
问题解决——使用CriticalSection后 0xXXXXXXXX处最可能的异常: 0xC0000005: 写入位置 0x00000014 时发生访问冲突
想了半天,觉得还得从提示入手:最可能的异常: 0xC0000005: 写入位置 0x00000014 时发生访问冲突。 这位置?这个位置就是……
写入位置 0xCDCDCDCD 时发生访问冲突等
debug时VS为了更快得帮程序员检测出内存问题,因此对初始化后的内存和释放后的内存做了一些处理,有: 0xcdcdcdcd - Created but not initialised (分配空间了,但是没初始化比如说刷成0,没调用构造函数) 0xdddddddd - Deleted (指针已经delete了,还调用它,也就是调用了已经delete的内存...) 0xfeeefeee - F