在ubuntu中编译C语言不允许直接定义高阶数组如: int arr[3000][3000];
如果这样写的话编译会出现段错误(核心已转储)问题。
解决方法: 用malloc开辟空间就行,c++中用new
例如定义一个3000*3000的矩阵
#include<stdio.h>
#define N 3000
int main()
{
int **arr1;
arr1 = (int **)malloc(N*sizeof(int*));
for(int i=0;i<N;i++)
{
arr1[i]=(int*)malloc(N*sizeof(int));
}
return 0;
}
这样段错误(核心已转储)问题就解决了。