c - C中二维数组的最大尺寸

标签 c arrays multidimensional-array segmentation-fault

在我的 C 程序中,当我采用这样的数组时

int a[100000][100000];

我遇到段错误。现在,如果我使用大小小于 1000 * 1000 的数组,就像这样

int a[1000][1000];

我没有遇到任何问题。在我的程序中,我需要使用 10^5 * 10^5 数组。我应该做什么来修复它。

最佳答案

使用malloc动态分配它。通过静态声明,您可以使用堆栈,堆栈具有堆(在动态分配中使用)没有的最大大小。

int *pointer = malloc (sizeof (*pointer) * (100000*100000));

然后,要访问它,请使用索引来表示 xy 坐标。

关于c - C中二维数组的最大尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23472913/

相关文章:

c - 使用结构在 C 中获取变量的错误值

arrays - 检查数组的所有元素是否相同

java - 使用堆栈显示图像数组(J2ME)

javascript - jScript - 如何 "mirror"矩阵(多维数组)

c - 在C混淆中将二维数组传递给函数

如果未调用 init 函数,则 C Drop 编译器错误

c - 如何使用预处理器宏填充字符串

PostgreSQL - 选择进入数组

java - 遵循Netbeans JNI基础教程时出错

c++ - C++ 中的 Struct hack 等价物