今天我面临一个奇怪的问题。当我尝试为char数组分配10M字节时,当我尝试执行代码时,我会收到堆栈溢出错误。对这个问题有什么想法吗?感谢。
乐
答案 0 :(得分:2)
使用什么语言?假设使用C / C ++,并且如果在堆栈上分配数组,例如
char A[10000000];
在函数或块作用域内,您可能正在达到线程的堆栈限制。 在VS中使用此设置 属性 - 配置属性 - 链接器 - 系统 - 堆栈保留大小
并重新链接。
使用为这样的大小使用动态分配更好char * A = new char [10000000];
或在C中使用malloc()。
使用这两个,您将在堆区域上进行分配,而不是在堆栈上进行分配。