在我的C程序中,当我拿这样的数组时
int a[100000][100000];
我遇到了分段错误。现在如果我使用的大小小于1000 * 1000的数组,就像这样
int a[1000][1000];
我没有遇到任何问题。在我的程序中,我需要使用10 ^ 5 * 10 ^ 5阵列。我该怎么做才能解决它。
答案 0 :(得分:1)
使用malloc
动态分配它。通过静态声明它,您可以使用堆栈,堆栈具有堆(在动态分配中使用)的最大大小。
int *pointer = malloc (sizeof (*pointer) * (100000*100000));
然后,要访问它,请使用索引来表示x
和y
坐标。