0x7730DCBB (ntdll.dll) (project1.exe 中)处有未经处理的异常: 0xC0000374: 堆已损坏。 (参数: 0x0007FF9F71327F0)

这是调试是进入函数出现的问题。
选择debug anyway后,会出现错误ntdll.pdb not loaded,在配置文件夹里找不到ntdll。
其中project1.exe是我这个应用程序的名字。
但是当我进入配置文件发现ntdll.pdb 确实是存在的,并没有丢失。
所以问题应该不是丢失而是损坏了,那至于为什么损坏,当然是堆栈溢出。
在这里插入图片描述
导致这个原因是——

访问了不可访问的位置(未new的二维数组)

我动态生成二维数组的时候把行和列定义反了!导致有些空间没有被开辟。虽然玄妙之处在于…。我有时候是可以成功运行的。大概是一次成功一次失败,这让我以为真的是vs的一个坑。不过换个意义上,确实也是vs的一个坑。

这里po一下我动态生成二维数组的方法。

	int **arr = new int *[n];
	for (int i = 0; i < n; i++)
	{
		//2是因为我知道这个二维数组只有两列,n行两列。这个2可以是一个变量
		arr[i] = new int[2];
	}

	int max = 0;
	int min = 0;

	for (int i = 0; i < n; i++) {
		arr[i][0] = arr[i][1] = 555;
	}
发布了38 篇原创文章 · 获赞 3 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_41337100/article/details/90579202