C++のcast

type declaration とか cast とか - odz buffer
でもコメントしてきたけど、mallocの返り値は

int* hoge = static_cast<int*>(malloc(sizeof(int));

int* hoge = reinterpret_cast<int*>(malloc(sizeof(int));

どっちがいいんだろう。

ちなみにどっちもコンパイルは通る(ハズ)


mallocの返り値はあくまでvoid*なので、無理やりint*なりに"曲げてる"って意識するならreinterpretのがいいのかなぁ?

static_castで通ってるうちはstatic_castにしといて、コンパイラで弾かれたらreinterpretってやってるからダメなのかもw

インスタンスなら

int hoge;
short piyo;
hoge = 1;
piyo = 2;

hoge = static_cast<int>(piyo);
piyo = reinterpret_cast<short>(hoge);

みたいに簡単に見分けつくのに、ことポインタだとどっちがよろしいのかよーわからん