sizeof hogeに関するメモ

typedef struct HOGE {
  uint hoge1;
  uint hoge2;
  ...
  uint hogeN;
} hoge;

hoge *hg;

みたいな構造体とそのポインタがあって、mallocを使ってメモリ割り当てを行う際に、

int num = 10;
hg = malloc(num * sizeof hg);

と書いていたらなんか動きが変だった。

正解はこちら。

hg = malloc(num * sizeof *hg);

hgだとポインタなのでsizeofの戻り値が4バイトになっちゃうから普通にふがふが(略

いろんな仕事をさぼって1日中コーディングしてたら、そこそこ感覚がつかめてきた。



後日追記:
約3日間かかったものの、作りたかったプログラムが何とか完成〜 今回はほんといろいろ勉強になった。というか作らんでも良いプログラムを作(ry ごめ(ry だって作りたか(ry