【发布时间】:2011-07-25 00:02:57
【问题描述】:
我正在尝试为以下变量组合创建一个 3d 字符数组:一个可以容纳 10000 个项目的列表,该列表具有 500 个可以是 30 个字符长的描述符。描述符单独附加到每个项目。我尝试将其设置为: 字符猫[10000][500][30];但是当我运行它时它一直说分段错误......有什么想法吗?谢谢
【问题讨论】:
标签: c string multidimensional-array segmentation-fault
我正在尝试为以下变量组合创建一个 3d 字符数组:一个可以容纳 10000 个项目的列表,该列表具有 500 个可以是 30 个字符长的描述符。描述符单独附加到每个项目。我尝试将其设置为: 字符猫[10000][500][30];但是当我运行它时它一直说分段错误......有什么想法吗?谢谢
【问题讨论】:
标签: c string multidimensional-array segmentation-fault
你的堆栈溢出了
堆栈用于局部变量,它不是很大(通常为 1Mb) - 您正在尝试存储 10,000 * 500 * 30 = 150Mb
看看 malloc()
【讨论】:
我猜这个问题与您试图声明一个 150 兆字节 数组的事实有关。这个东西要填吗?是否会有正好 10000 个项目,每个项目正好有 500 个描述符,每个描述符不少于 30 个字符?如果其中任何一个问题的答案是否定的,那么您可能不需要提前分配全部 150 兆字节。
为了让它正常工作,您可以改用malloc。这东西到底是用来做什么的?
【讨论】:
static 看看是否有帮助(尽管它可能不会。)