我正在尝试开发一个应用程序,它从RAM中分配给定数量的GB.当我尝试分配1 GB RAM它工作正常,但超过1GB,它崩溃.
我使用的是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;
Run Code Online (Sandbox Code Playgroud)
错误是:
ttool.exe中0x0F993FD4(msvcr120d.dll)的第一次机会异常:0xC0000005:访问冲突写入位置0x00000000.
ttool.exe中0x0F993FD4(msvcr120d.dll)的未处理异常:0xC0000005:访问冲突写入位置0x00000000.
我尝试将其作为32位应用程序,但也是64位应用程序,结果是相同的.我也为链接器尝试了/ LARGEADRESSAWARE选项.但是我找不到解决方案.
我知道它可能是关于我使用了多少RAM,但是当我使用3.02GB RAM并尝试分配2GB时,它也会崩溃.
我怎么解决这个问题?