ハブ君の寝言

日記のような何か

二次元配列のmalloc

二次元配列のmallocってデータの領域とポインタの領域の両方を確保するのクソ面倒ですよね
どうにかならないのかねぇ

#include<stdlib.h>
#define gyo 100
#define retsu 200
int main(){
// n*mの二次元配列を
  int i, n = gyo, m = retsu;
// 各列?の先頭を指すポインタの配列
  double **a = (double **)malloc(sizeof(double *)*n);
// 各データを一列に
  a[0] = (double *)malloc(sizeof(double)*(n*m));
// 各列の先頭を指す作業
  for(i=1;i<n;i++) a[i] = a[i-1]+m;
/* なんか処理 */
// データをフリーして
  free(a[0]);
// ポインタをフリーする
  free(a);
}

ポインタってめんどくさいですよねー。