C言語 void型ポインタとは?

通常、ポインタ型の変数は、データ型を指定しますが、

データ型を指定せずにポインタ型の変数を宣言する事ができます。
これをvoid型ポインタと呼びます。

void* vp;      // void型ポインタの宣言

char c[4] = "123";
int i = 500;

vp = &c;      // void型ポインタにchar型ポインタ値を代入

// void型ポインタを使ってchar型変数cの中身を表示
printf("c = %s\n", (char*)vp);

vp = &i;      // void型ポインタにint型ポインタ値を代入

// void型ポインタを使ってint型変数iの中身を表示
printf("i = %d\n", *(int*)vp);
c = 123
i = 500

このようにvoid型ポインタ変数には、
どんなデータ型のポインタ値でも入れられます。

void型ポインタ変数を使う時は、
どのデータ型で使うかをキャストで示してから使用します。

その他のvoid機能については、
こちらのページで説明しています。

タイトルとURLをコピーしました