gpt4 book ai didi

c - 我在 Visual Studio 2010 中尝试执行链接列表代码时遇到未处理的异常

转载 作者:行者123 更新时间:2023-11-30 20:16:20 24 4
gpt4 key购买 nike

#include<stdio.h>
#include<conio.h>
#include<malloc.h>
struct node{
int value;
struct node *link;
}*p,**q,*r,*temp;
static int n=0;
void append(struct node **,int);
main(){
append(&p,1);
append(&p,2);
append(&p,3);
append(&p,4);
append(&p,5);
printf("Entered linked list :\n");
//display(p);
getch();
}
void append(struct node **q,int num){
if(n==0){
struct node *temp=(struct node*)malloc(sizeof(struct node));
temp->value=num;
temp->link=NULL;
*q=p;
n++;
}
else{
temp=*q;
while(temp->link!=NULL)
temp=temp->link;
r=(struct node*)malloc(sizeof(struct node));
r->value=num;
r->link=NULL;
temp->link=r;
//q=p;
}
}

有人可以告诉我为什么会出现此消息吗:

unhandled exception at 0x00fa14ea in linkedlist.c.exe: 0xC000005: Access violation reading location 0x0000004

在 Visual Studio 2010 中运行此程序时会出现此问题吗?

最佳答案

看起来您正在通过 NULL 指针访问数据。您可以通过错误来判断:

Access violation reading location 0x0000004

当您收到一条错误消息,指出您已经读取了 NULL 附近的位置时,通常意味着您正在尝试通过 NULL 指针访问成员变量。由于位置是 0x4,因此该成员的偏移量可能是距对象开头的 4。

您拥有的唯一结构是:

struct node{
int value;
struct node *link;
};

这里,value 将位于偏移量 0x0 处,link 将位于偏移量 0x4 处,因此错误将发生在您尝试访问 的地方通过 NULL 指针链接 成员。

关于c - 我在 Visual Studio 2010 中尝试执行链接列表代码时遇到未处理的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12150074/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com