在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; }
这样段错误(核心已转储)问题就解决了。