gpt4 book ai didi

无法在c中找到长度为1000000的二维字符数组

转载 作者:行者123 更新时间:2023-11-30 20:13:30 24 4
gpt4 key购买 nike

我正在尝试在 C 程序中创建一个二维字符数组:

char array[1000000][10];

但程序在运行时输出“Segmentation failure”。我尝试用 100,000 创建它并且它有效,但是 1,000,000 则不起作用。是什么原因导致这行代码导致Segmentation failure?

最佳答案

假设堆栈是函数内的局部变量,它可能会超出操作系统对堆栈大小的理解。

该数组需要 1000000 * 10 = ~9.5 MB 的堆栈空间,这是相当多的。

尝试:

  • 使其静态
  • 改用malloc()
  • 修改操作系统级别的限制。
  • 使其全局化。当然全局变量是不好的,所以在很多情况下这是最糟糕的解决方案。

关于无法在c中找到长度为1000000的二维字符数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30070992/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com