我正在尝试在我的程序中创建一个二维数组(154272 X 154272)。但我得到n > 40000
的分段错误错误。我使用了malloc和vector。我想知道如何处理这个大的n
值。
int main()
{
int n = 154272;
//int n = 50000;
int **arr = (int **)malloc(n * sizeof(int *));
for (int i=0; i<n; i++)
arr[i] = (int *)malloc(n * sizeof(int));
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
arr[i][j] = 0;
for(int p=0; p<n; p++)
free(arr[p]);
// I tried the following also
//std::vector< std::vector<int> > arr (n, std::vector< int >(n));
return 0;
}
PS:我发现了一些与此类似的问题,但他们没有谈论n
的大量价值