kakts-log

programming について調べたことを整理していきます

voidポインタの特徴

cにおけるvoidポインタは、汎用ポインタと呼ばれ、どのようなデータ型でも指すことが出来る。

void *pv;

こんな感じで他のintやcharポインタと同様に宣言できる。

voidポインタの特徴としては、大きく3つある
①charポインタと同じ表現形式とメモリ上の並びを持つ
②2つのvoidへのポインタがともにnullポインタである時、その2つは等しいと見なされるが、それ以外の場合はどの2つのポインタも等しくならない
③どの用な型のポインタもvoidポインタへ代入できる
    voidポインタから元のポインタの変数へ代入するときはキャストする必要がある。
 ここで、ある型のポインタをvoidポインタにキャストした後、元の型と異なるポインタ型へのキャストを防ぐ方法がないので、注意が必要です。