gpt4 book ai didi

c++ - 超过 1GB 的内存分配错误

转载 作者:行者123 更新时间:2023-11-30 00:46:32 27 4
gpt4 key购买 nike

我正在尝试开发一个应用程序,它从 RAM 中分配给定数量的 GB。当我尝试分配 1 GB RAM 时,它工作正常,但超过 1 GB 时,它崩溃了。

我使用的是 Windows 7 - 64 位,并且有 6 GB RAM(已安装内存)。我使用 Qt 开发此应用程序,并且使用的是 Visual Studio 2013。

代码在这里:

int size = 1024 * 1024 * 1024;
m_Size = ui.CPUAllocationEntry->text().toInt();


m_Arr =(char*) malloc(sizeof(char)*size*m_Size);
memset(m_Arr, 1, size*m_Size);
if (m_Arr == NULL)
{
qDebug() << "Pointer Null" << endl;
}
else
qDebug() << "Pointer NOT null" << endl;

return;

错误是:

First-chance exception at 0x0F993FD4 (msvcr120d.dll) in ttool.exe: 0xC0000005: Access violation writing location 0x00000000.

Unhandled exception at 0x0F993FD4 (msvcr120d.dll) in ttool.exe: 0xC0000005: Access violation writing location 0x00000000.

我将其作为 32 位应用程序和 64 位应用程序进行了尝试,结果是一样的。我还为链接器尝试了/LARGEADRESSAWARE 选项。但是我找不到解决方案。

我知道这可能与我使用了多少 RAM 有关,但是当我使用 3.02GB RAM 并尝试分配 2GB 时,它也会崩溃。

我该如何解决这个问题?

最佳答案

你的内存是支离 splinter 的。您要求一大块 1GB,但没有这样的 block 可用。很可能有十个 512MB 的 block 可用,但这还不够好。

关于c++ - 超过 1GB 的内存分配错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38069513/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com