• ベストアンサー

キャストについて

たまに (int*) といった記述を見るのですが、このint*はどういった処理(意味?)をしているのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • kb-nike
  • ベストアンサー率36% (72/200)
回答No.4

例えば、malloc()などでメモリ割り当てした場合、malloc()は、void *(型を指定しないポインタ)を返します。 この戻り値を(int *)を使ってint型のポインタとして扱うことを宣言します。 ポインタの型を指定することによって、ポインタの加算などの演算が正常に(例えば、1加算したときに、int型であればint型のサイズだけポインタを進める、char型であればchar型のサイズだけ進める、double型であればdaouble型のサイズだけ進める、等々)行われます。

その他の回答 (3)

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.3

Cの場合、void*からint*へは暗黙的に型変換できます。 おそらく、静的解析ツールの警告を黙らせるためといった理由なのでしょう。

  • arain
  • ベストアンサー率27% (292/1049)
回答No.2

>見た限りではポインタにキャストしているような気もするのですが。。。 malloc()であれば、戻り値は「void *」です。 従って、「void型のポインタ」を適切な変数型のポインタにキャストしています。

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.1

> (int*) > といった記述を見る int *p; p = (int *) malloc(sizeof(int) * n); のような文脈の一部のことですか?

komehara12
質問者

補足

まさにこのような感じです。 見た限りではポインタにキャストしているような気もするのですが。。。

関連するQ&A