3

我分配了少量数据类型,总大小为 2mb。

我只使用一个堆,它运行良好,直到我得到一定数量的分配,我很确定这一点,因为我已经评论了一个分配,让它在下一个崩溃。

配额=磁盘空间?该文档没有涵盖此特定功能的错误代码,我已经分析了应用程序并且为该进程分配了大量可用内存。另外我在堆指针上放了一个数据断点,它不会中断。当我单步执行时,堆指针很好,直到我调用 HeapAlloc。

这么奇怪..

4

2 回答 2

2

尝试分配一大块内存(即 >2MB),直到出现错误以确定问题是对象数还是总堆数。另外,您确定您分配的内存不超过 2mb 吗?我在达到 2gb 限制时看到了该错误,但除非您的页面文件已满,否则永远不会达到 2mb。

如果所有其他方法都失败了,请重新启动或在另一台机器上尝试。

于 2010-01-22T03:16:22.930 回答
1

根据WinNt.h异常代码C0000017映射中的值, HeapAlloc将抛出STATUS_NO_MEMORY异常之一。因此,您要么内存不足,要么溢出了分配的缓冲区之一并损坏了堆。

于 2010-01-22T03:40:21.877 回答