当我使用大小为 10^5*10^5 的数组(例如int a[100000][100000]
。由于该数组消耗更多内存,这可能是运行时错误的原因之一。
我应该如何声明这个数组(二维数组,例如int a[100000][100000]
)这样我就可以应对问题SIGSEGV
运行时错误?
请提供声明此类数组的方法?
声明大数组的三种方法int a[100000][100000]
are:
- 使大数组全局化
-
制作大数组static
:
static int a[100000][100000];
-
Use malloc
/calloc
并动态分配大数组:
int **a;
a=malloc(sizeof(int*)*100000);
for(int i=0;i<100000;i++)
a[i]=malloc(sizeof(int)*100000);
/*Use the array*/
for(int i=0;i<100000;i++)
free(a[i]);
free(a);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)