无法整理c ++中的输入。退出,分段错误

时间:2019-09-22 05:08:13

标签: c++ segmentation-fault

v1::org::table::psa::EthernetProxy

我做了矩阵OOP类,它可以正常工作,我正在尝试读取数据以使用它。从文件读取数据时出现问题。在第一行中,我得到了N,它是矩阵的大小,然后有4 * N行,描述了4个(NxN)矩阵。 input.txt看起来像这样:

int main(){
  freopen("input.txt", "r", stdin); 
  freopen("output.txt", "w", stdout);
  int N;
  long int ** inp;

  scanf("%d",&N);

  inp = (long int **)malloc((4*N)*sizeof(long int));
  for(int i=0; i<4*N;i++){
    inp[i] = (long int *)malloc((N)*sizeof(long int));
    for (int j =0; j<N;j++){
      scanf("%ld",&inp[i][j]);
    }
  }

  Matrix A(N);
  Matrix B(N);
  Matrix C(N);
  Matrix D(N);


  for(int i =0; i<N; i++){
    for(int j=0; j<N; j++){
      A.Matr[i][j]=inp[i][j];
    }
  }

  for(int i =N; i<2*N; i++){
    for(int j=0; j<N; j++){
      B.Matr[i][j]=inp[i][j];
    }
  }

  for(int i =2*N; i<3*N; i++){
    for(int j=0; j<N; j++){
      C.Matr[i][j]=inp[i][j];
    }
  }

  for(int i =3*N; i<4*N; i++){
    for(int j=0; j<N; j++){
      D.Matr[i][j]=inp[i][j];
    }
  }

  A.Display();
  cout << "\n";
  B.Display();



  return 0;
}

运行代码后,出现以下错误:“退出,分段错误”,我不知道如何解决。我猜想内存分配和使用C中的旧函数有问题,但我不知道它到底有什么问题。

0 个答案:

没有答案