先日、malloc() の返り値は void* なので、ずっと明示的にキャストしないといけないと思ってた(というか、そう教わったからそういうものだと思ってた)けど、実はそうではないらしい*1ということが分かったので忘れないうちにメモ。
test.c
実際に上記のようなプログラムを書いてコンパイルしてみると、Cのときは特にエラーも出なくて、C++にするとコンパイラが怒るのがわかります。
クセとしてはいつでもキャストするように覚えておいたほうが都合いいから、教える方がそうしていたということなんでしょうか。ただ、C でも void* を間接参照して値を格納しようとするとエラーになるので、型チェックの仕様はちょっと謎。もともと方言が多い処理系だからあまり深くつっこんじゃいけない部分なのかもしれませんが。
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/3625
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。