NIKOUDAYOU 2022-12-03 19:22 采纳率: 0%
浏览 34

在devc++上运行成功但返回值是3221225477,在vscode上运行失败并返回了-1073741819

#include <stdio.h>
#include <malloc.h>
#define LEN sizeof(struct student)
struct student
{
int num;
char name[8];
char sex[2];
int age;
struct student next;
};
int main()
{
//struct LinkList
head = (struct LinkList*)malloc(sizeof(struct LinkList));
struct studenthead = (struct student)malloc(LEN);
struct student *p,*r;
for (int i = 0; i < 4; i++)
{
struct student*s = (struct student*)malloc(LEN);
s->next = NULL;
scanf("%d", &s->num);
scanf("%s", s->name);
scanf("%s", s->sex);
scanf("%d", &s->age);
s->next = head->next;
head->next = s;

}
//以上是建立了一个含有初始值的链表

//删除部分 
int ag = 0;
scanf("%d",&ag);
p = head;
while(p->age!=ag&&p->next!=NULL)//循环查找要删除的结点
{
    r=p;
    p=p->next;        //把p的下一个结点给p,所以p就不是原来的p了,原来的p变成了r
  if(p->age==ag)    //因为头结点没有数值,所以一开始就让p=p->next是对的
  {
    r->next=p->next;//将要删除结点的前一个结点指向它的下一个结点(原本是要指它的,现在指向它的下一个结点了)(r是要删除结点的前一个结点)  
    free(p);
  }                    //这里的p->next已经和第38行的p->next不一样了,它是38行的下一个结点了
}
p = head;
while(p->age!=ag&&p->next!=NULL)//循环查找要删除的结点
{
    r=p;
    p=p->next;        //把p的下一个结点给p,所以p就不是原来的p了,原来的p变成了r
  if(p->age==ag)    //因为头结点没有数值,所以一开始就让p=p->next是对的
  {
    r->next=p->next;//将要删除结点的前一个结点指向它的下一个结点(原本是要指它的,现在指向它的下一个结点了)(r是要删除结点的前一个结点)  
    free(p);
  }                    

img

}

//打印部分 
p = head;
while(p->next!=NULL)
{
    printf("%d %s %s %d\n", p->next->num, p->next->name, p->next->sex, p->next->age);
    p = p->next;
}
return 0;

}
————————————————————————————分割线——————————————————
一个学校关于链表的作业,
使用动态分配内存的方式建立一个链表,从键盘输入4个学生的数据,包括:学号、姓名、性别(m表示男,f表示女)、年龄,并依次插入链表。例如一个学生的数据输入格式为:

101
Ma
m
20

最后从键盘输入一个年龄,如果链表中的节点包含的年龄等于此年龄,则将此节点删去,然后将链表中剩下的节点数据输出。

编写程序,用scanf函数得到输入,求出结果后将其输出,输出格式参考output文件。

这个代码在devC++上正常运行但是返回值并不是0,而且在vscode上会显示应用程序执行异常,返回值:-1073741819;

本题是删除指定年龄的节点,也就是删除链表指定节点

img

  • 写回答

1条回答 默认 最新

  • 浪客 2022-12-03 19:33
    关注

    这个是程序的返回值,也就是main的返回值,如果不为0,说明运行过程中出错终止了。

    评论

报告相同问题?

问题事件

  • 创建了问题 12月3日

悬赏问题

  • ¥15 onlyoffice编辑完后立即下载,下载的不是最新编辑的文档
  • ¥15 求caverdock使用教程
  • ¥15 Coze智能助手搭建过程中的问题请教
  • ¥15 12864只亮屏 不显示汉字
  • ¥20 三极管1000倍放大电路
  • ¥15 vscode报错如何解决
  • ¥15 前端vue CryptoJS Aes CBC加密后端java解密
  • ¥15 python随机森林对两个excel表格读取,shap报错
  • ¥15 基于STM32心率血氧监测(OLED显示)相关代码运行成功后烧录成功OLED显示屏不显示的原因是什么
  • ¥100 X轴为分离变量(因子变量),如何控制X轴每个分类变量的长度。