商丘加盟小吃网站,沈阳男科医院哪家有名,wordpress登陆图标修改,网页设计教程课本课后题答案正常情况一个进程最大占用内存为1G一下#xff0c;如果程序有需求要使用超过1G大小的程序#xff0c;可进行如下操作
VS修改设置#xff1a;属性---链接器---系统---启用大地址 【选择是】
测试申请堆内存代码
#include stdlib.h
#include stdio…正常情况一个进程最大占用内存为1G一下如果程序有需求要使用超过1G大小的程序可进行如下操作
VS修改设置属性---链接器---系统---启用大地址 【选择是】
测试申请堆内存代码
#include stdlib.h
#include stdio.h
#include Windows.h
#include malloc.h
#include exception
#include threadint count 0;
HANDLE g_event;
void TestThread()
{while (1){try{new int[1024 * 1024];count;}catch (const std::bad_alloc){printf(申请内存失败\n);break;}}SetEvent(g_event);
}
int main()
{g_event CreateEvent(0, false, false, 0);CreateThread(0, 0, (LPTHREAD_START_ROUTINE)TestThread, 0, 0, 0);WaitForSingleObject(g_event, INFINITE);printf(%dM\n,count*4);system(pause);return 0;
}
因为编译出来的是x86版本所以运行后可看到使用了4G的内存
如果是x64那么最大可使用8GB 使用vs开发人员工具 dumpbin /headers xxx.exe可以查看程序是否开启了大地址选项 Qt开启大地址选项
在.pro文件中添加 QMAKE_LFLAGS_WINDOWS /LARGEADDRESSAWARE
注意
QMingw是不可以使用该选项的会出现如下错误Qt Widget Application工程会出现Qt Console Application不会出现并且Qt控制台程序没有开启成功如果使用VS创建Qt控制台工程是可以开启选项成功 error: /LARGEADDRESSAWARE: No such file or directory