开发者社区> 问答> 正文

大阵列尺寸上的分段错误

以下代码在2Gb机器上运行但在4GB机器上运行时给我分段错误。

int main() { int c[1000000]; cout << "done\n"; return 0; } 阵列的大小仅为4Mb。在c ++中可以使用的数组大小是否有限制? 问题来源于stack overflow

展开
收起
保持可爱mmm 2020-02-08 10:54:44 336 0
1 条回答
写回答
取消 提交回答
  • 您可能在这里只是堆栈溢出。数组太大,无法放入程序的堆栈地址空间。

    如果您在堆上分配数组,则应假定计算机有足够的内存,这应该没问题。

    int* array = new int[1000000];

    但是请记住,这将需要您进入delete[]阵列。更好的解决方案是使用std::vector 并将其大小调整为1000000个元素。

    2020-02-08 10:54:53
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载