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

我在之前写过两篇我在VS2019调试的时候出现的:进程已退出,代码为-1073741819的文章但是没有说这到底是什么问题
1.关于VS2019调试问题:进程已退出,代码为-1073741819(已解决)
2.关于VS2019调试问题:进程已退出,代码为-1073741819询问
在经过这段时间用VS2019写代码,调试,最终为大家说明一下这个进程错误的原因!

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

#include
#include

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

看上去没啥问题我们编译一下:
VS2019了解:进程已退出,代码为-1073741819_第1张图片
VS2019了解:进程已退出,代码为-1073741819_第2张图片
说明:
在VS中scanf由于安全等级太低,所以强制使用scanf_s函数来接收输入值!
所以我们应该写成下面的这样

#include
#include

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

VS2019了解:进程已退出,代码为-1073741819_第3张图片
2.自己操作不当导致出错:
VS2019了解:进程已退出,代码为-1073741819_第4张图片3.进程已退出,代码为-1073741819
我这次用了我之前文章里的代码:

#include 
#include 
#include 
#include 

//创建链表
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;
}

执行截图:
VS2019了解:进程已退出,代码为-1073741819_第5张图片
可以看到报出了-1073741819!
但是生成的解决方案却没问题
VS2019了解:进程已退出,代码为-1073741819_第6张图片
VS2019了解:进程已退出,代码为-1073741819_第7张图片
这里我们启动调试,就能发现问题了!
所以这说明是我们代码中写错了,但因为其兼容性导致检测不出,等到执行之后问题才暴露出来!
所以当我们出现进程已退出,代码为-1073741819时不用害怕,大概率只要你好好检查一下找错就能够改正
这是VS2019中出现错误的正常现象!
VS2019了解:进程已退出,代码为-1073741819_第8张图片

你可能感兴趣的:(笔记,c语言,编译器)