VS2019了解:进程已退出,代码为-1073741819

  • Post author:
  • Post category:其他


我在之前写过两篇我在VS2019调试的时候出现的:进程已退出,代码为-1073741819的文章但是没有说这到底是什么问题

1.

关于VS2019调试问题:进程已退出,代码为-1073741819(已解决)


2.

关于VS2019调试问题:进程已退出,代码为-1073741819询问


在经过这段时间用VS2019写代码,调试,最终为大家说明一下这个进程错误的原因!

首先我们看一下最基本的c语言代码的运行中出现的错误类型:

1.编译错误

#include<stdlib.h>
#include<stdio.h>

int main()
{
	int a;
	scanf("%d", &a);
	printf("%d", a);
	return 0;
}

看上去没啥问题我们编译一下:

在这里插入图片描述

在这里插入图片描述

说明:

在VS中scanf由于安全等级太低,所以强制使用scanf_s函数来接收输入值!

所以我们应该写成下面的这样

#include<stdlib.h>
#include<stdio.h>

int main()
{
	int a;
	scanf_s("%d", &a);
	printf("%d", a);
	return 0;
}

在这里插入图片描述

2.自己操作不当导致出错:

在这里插入图片描述
3.进程已退出,代码为-1073741819

我这次用了我之前文章里的代码:

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <string.h>

//创建链表
struct linknode
{
	int data;
	struct linknode* next;
};

//初始化链表->创建一个空链表
struct linknode* init_list()
{
	//创建头结点
	struct linknode* head = malloc(sizeof(struct linknode));
	head->data = 0;
	head->next = NULL;

	//创建尾节点
	struct linknode* p = head;
	//获得用户输入
	int nodedata = 0;
	while (1)
	{
		printf("请输入值(输入等于0的值退出):");
		scanf_s("%d", &nodedata);
		if (nodedata == 0)
		{
			break;
		}

		//创建新结点
		struct linknode* newnode = malloc(sizeof(struct linknode));
		newnode->data = nodedata;
		newnode->next = NULL;

		//把新结点插入链表中
		p->next = newnode;

		//更新尾指针
		p = newnode;
	}
	return head;//返回头节点即返回列表
}

//在old_data值之后插入一个new_data值(在原来的结点后面串联一个新的结点)
void addlist(struct linknode* head, int old_data, int new_data);

//删除数据
void dellist(struct linknode* head, int deldata);

//遍历打印链表
void showlist(struct linknode* head)
{
	/*if (head == NULL)
	{
		return;
	}*/

	struct linknode* p = head->next;//创建尾结点让他指向第一个空头结点的地址域
	while (p != NULL)
	{
		printf("%d", p->data);
		p = p->next;
	}
}

//清空链表
void clearlist(struct linknode* head);

//摧毁链表
void destory_list(struct linknode* head);

int main()
{
	struct linknode* head = init_list();
	showlist(&head);
	return 0;
}

执行截图:

在这里插入图片描述

可以看到报出了-1073741819!

但是生成的解决方案却没问题

在这里插入图片描述

在这里插入图片描述

这里我们启动调试,就能发现问题了!

所以这说明是我们代码中写错了,但因为其兼容性导致检测不出,等到执行之后问题才暴露出来!

所以当我们出现进程已退出,代码为-1073741819时不用害怕,大概率只要你好好检查一下找错就能够改正

这是VS2019中出现错误的正常现象!

在这里插入图片描述



版权声明:本文为qq_51553982原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。