以下代码在2Gb机器上运行但在4GB机器上运行时给我分段错误。
int main() { int c[1000000]; cout << "done\n"; return 0; } 阵列的大小仅为4Mb。在c ++中可以使用的数组大小是否有限制? 问题来源于stack overflow
您可能在这里只是堆栈溢出。数组太大,无法放入程序的堆栈地址空间。
如果您在堆上分配数组,则应假定计算机有足够的内存,这应该没问题。
int* array = new int[1000000];
但是请记住,这将需要您进入delete[]阵列。更好的解决方案是使用std::vector 并将其大小调整为1000000个元素。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。