在我的 C 程序中,当我采用这样的数组时
int a[100000][100000];
我遇到段错误。现在,如果我使用大小小于 1000 * 1000 的数组,就像这样
int a[1000][1000];
我没有遇到任何问题。在我的程序中,我需要使用 10^5 * 10^5 数组。我应该做什么来修复它。
最佳答案
使用malloc
动态分配它。通过静态声明,您可以使用堆栈,堆栈具有堆(在动态分配中使用)没有的最大大小。
int *pointer = malloc (sizeof (*pointer) * (100000*100000));
然后,要访问它,请使用索引来表示 x
和 y
坐标。
关于c - C中二维数组的最大尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23472913/