メモリの動的な確保

主に自分が忘れない用。
こう書くと格好いい感じだけど、mallocしてるだけである。ヒーブ領域よりもスタック領域の方がでかいらしいので、プログラムの頭で、double Hoge[NN]とかして、そんな沢山配列切れないよって言われたらmallocとか、極めていい加減な理由で使ってます。
ちゃんとfreeしときゃいいんだよ、freeしときゃ。そしてmalloc使ってこの問題が解決されてしまった事例を目の当たりにして、そのときは笑った。
今は本当に動的に配列を切らないといけないからなんだけどさ。
あとあれだ、stdlib.hが必要らしい。

#include <stdlib.h>
#define MM 100
#define NN 10000

int main () {
  double** Hoge;
  int i;

  /* 配列切る */
  Hoge = (double**) malloc (MM*sizeof(double*));  
  for (i = 0; i < MM; i++) Hoge[i] = (double*) malloc (NN*sizeof(double));

  /* Hoge[MM][NN]を使うプログラム */

  /* メモリ解放する */
  for (i = 0; i < MM; i++) free (Hoge[i]);
  free (Hoge);

  return 0;
}

こんなウンコサンプルよりも、

http://www.aso.ecei.tohoku.ac.jp/~shun/multi_dim.html

の方にとても詳しく載ってます。