C ++中大型二维数组的段错误错误

时间:2016-05-17 01:55:54

标签: c++ vector malloc

我正在尝试在我的程序中创建一个二维数组(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的大量价值

0 个答案:

没有答案