我想编写一个程序,其中要初始化大小为987654321的整数数组,以仅存储1和0的值, 这是我的程序
#include <stdio.h>
#include <stdlib.h>
int main(){
int x,y,z;
int limit = 987654321;
int arr[limit];
for (x = 0;x < limit;x++){
printf("%d \n",arr[x]);
}
return 0;
}
但是它给出了分割错误
答案 0 :(得分:1)
987654321对于本地变量肯定太大了。
如果需要具有该大小的动态大小的数组,则需要使用malloc
,例如:
int limit = 987654321;
int *arr = malloc(limit * sizeof(*arr));
if (arr == NULL)
{
... display error message and quit
}
...
free(arr); // free it once you're dont with the array
顺便说一句,您是否知道假设平台上int
的大小为4,则阵列会使用大约4 GB的内存?