动态分配浮点矩阵?

有没有办法如何在C中
malloc()
二维矩阵?我已经成功地试过了一个1D字段,但是在矩阵中我遇到了错误。     
已邀请:
  float * mat2d = malloc(rows * cols * sizeof(float   )); 要从矩阵中访问值,请使用此地址方案:   float val = mat2d [x + y * cols];     
如果在编译时不知道数组的大小,则必须使用循环为每行分配内存。 这是我发现的一些示例代码:
double** allocate2D(int nrows, int ncols) {
  int i;
  double **dat2;
  /*  allocate array of pointers  */
  dat2 = malloc( nrows*sizeof(double*));

  if(dat2==NULL) {
    printf("nError allocating memoryn");
    exit(1);
  }
  /*  allocate each row  */
  for(i = 0; i < nrows; i++) {
    dat2[i] = malloc( ncols*sizeof(double));
  }
  if(dat2[i-1]==NULL) {
    printf("nError allocating memoryn");
    exit(1);
  }
  return dat2;
}
从这里 请务必将数据类型从double更改为您需要的任何内容。     

要回复问题请先登录注册