VS 2012无法为10,000,000大小的char数组分配内存

时间:2015-11-15 13:29:23

标签: visual-studio

今天我面临一个奇怪的问题。当我尝试为char数组分配10M字节时,当我尝试执行代码时,我会收到堆栈溢出错误。对这个问题有什么想法吗?感谢。

1 个答案:

答案 0 :(得分:2)

使用什么语言?假设使用C / C ++,并且如果在堆栈上分配数组,例如

char A[10000000];

在函数或块作用域内,您可能正在达到线程的堆栈限制。 在VS中使用此设置 属性 - 配置属性 - 链接器 - 系统 - 堆栈保留大小

并重新链接。

使用

为这样的大小使用动态分配更好

char * A = new char [10000000];

或在C中使用malloc()。

使用这两个,您将在堆区域上进行分配,而不是在堆栈上进行分配。