C++ 主堆中立即出现堆损坏/错误分配问题
所以我一直在尝试解决我的问题,虽然我不能发布任何大量的源代码(NDA),但我可以发布一小部分,我想在程序启动时获得一些关于什么可能导致这种问题的信息C++ 主堆中立即出现堆损坏/错误分配问题,c++,main,heap-corruption,C++,Main,Heap Corruption,所以我一直在尝试解决我的问题,虽然我不能发布任何大量的源代码(NDA),但我可以发布一小部分,我想在程序启动时获得一些关于什么可能导致这种问题的信息 int main(int aArgumentCount, char** aArguments) { LZ_CHECK_MEMORY_QXL; LZ_CHECK_MEMORY_QXL; LZ_CHECK_MEMORY_QXL; LZ_CHECK_MEMORY_QXL; // ... Etc } define
int main(int aArgumentCount, char** aArguments)
{
LZ_CHECK_MEMORY_QXL;
LZ_CHECK_MEMORY_QXL;
LZ_CHECK_MEMORY_QXL;
LZ_CHECK_MEMORY_QXL;
// ... Etc
}
define所做的只是扩展到一个函数,该函数分配一个15000000大小的整数数组,然后立即删除它
但是,在我们的应用程序中,该分配的第一次/第二次调用会立即导致std::bad_alloc崩溃
是否有人有任何我应该深入研究以发现此问题的指针?
std::bad\u alloc
表示程序无法分配您希望它分配的内存。15000000个整数的大小为600 MiB或1.2 GiB,具体取决于您的系统和编译器。这种大小的单个内存块的分配可能远远超出您的操作系统/系统的能力,因此它失败也就不足为奇了。您将需要使用另一个数据结构而不是单个巨型阵列。是否分配更少的内存?