程序的内存空间分为全局变量区,栈空间,堆空间等多部分,通常栈空间都不大,几M的大小,开一个长度为几十万的整型数组,栈空间就受不了,要告诉你stackflow了。
使用malloc
函数动态申请堆空间内存会是一个好的解决方案,但要时刻牢记配套的free对动态内存进行释放
#edfine ARRAYLENGTH 100000
int *ia = (int*) malloc(sizeof(int)*ARRAYLENGTH);
free(ia);
ia = NULL;
在堆上申请二维数组的内存空间,也比较简单
int (*ia2)[4] = (int (*) [4])malloc(sizeof(int)*4*ARRAYLENGTH);
for(int i=0;i<4;++i)
{
free