阵列3D会编译,但不会运行

  • 本文关键字:运行 编译 3D 阵列 c
  • 更新时间 :
  • 英文 :


当我尝试制作一个简单的三维数组char tmp[256][256][256];时,它会编译,但我无法运行它。

我怎样才能做到这一点?

谢谢!

int main()
{
    int tmp[256][256][256];
    getch();
}

就是这样。它不会跑。

您遇到堆栈溢出。多么讽刺!

2解决方案:

1 重写代码,不要要求太多内存。使用动态内存分配malloc()calloc()free()和其他。

2。增加操作系统分配给程序的堆栈内存:链接

嘿,您正在请求256*256*256=16777216字节的块。这个数组是在main()方法中声明的,该方法占用堆栈上的内存,而不是堆上的内存。因此,请尝试在main()之外声明此数组,或者使用malloc()函数动态分配内存。它会很好用的。

最新更新