尝试创建动态矩阵时,为什么在抛出'std :: bad_alloc'what():std :: bad_alloc实例后得到“终止调用?”

时间:2019-04-24 03:03:56

标签: c++ matrix bad-alloc

好吧,问题在于,如果我尝试创建16384 *(16384 * 2 + 2)的动态矩阵,当尝试创建131072 *(131072 * 2)的动态矩阵时,我的程序突然崩溃,它仍然可以正常工作。因此,我需要一种在不导致程序崩溃的情况下创建矩阵的方法。

     int ROW=b_len;                      //131072 
  int COL=a_len+b_len+OVERFLOW;      //131072*2+2

    int** mat = new int*[ROW];
    printf("\n\nHURRA");  //It prints this
    for (int i = 0; i < ROW; ++i)  //I think it crashes here
mat[i] = new int[COL];
  printf("\n\nolv");    //But not this

0 个答案:

没有答案