是否有关于内存分配的模块/源文件中的函数的定量测试,如以下32位构建中所示:
#include <windows.h>
int main()
{
wchar_t TestArray [516332] = { NULL };
}
它成功用于516332(或7E0EC),但产生516333的堆栈溢出.
当然,全局降低2Gb或7FFFFFFF是合法的,但添加一个来获得SO.
#include <windows.h>
wchar_t TestArray [2147483647] = { NULL };
int main()
{
}
在32位版本中使用VS10 / MCBS,但X64不能很好用. 64或128系统中的函数类型(例如long,char void,bool)是否成比例增加?使用数字/表格方法专门搜索答案.
最佳答案 不确定我的问题是否正确,但是:
int main()
{
wchar_t TestArray [516332] = { NULL };
}
在这里,你达到了默认的1MB线程堆栈大小的限制(其他一些数据也已经在堆栈上).可以使用/ STACK调整默认大小:在Visual Studio中保留[,commit].
wchar_t TestArray [2147483647] = { NULL };
int main()
{
}
在这里,您将在32位系统上达到2GB用户模式限制(可以使用/ 3GB启动开关进行更改).