プロが教えるわが家の防犯対策術!

int hoge( void** ){
// do something
}

C言語で上記のように、`void**`といった記述がのあるサンプルソースがあるのですが、この`void**`の意味がわからなく困っています。
`void*`というのは意味がわかるのですが、`void**`は見たことがありません。

どなたかご存知の方がいましたら教えていただけないでしょうか?

A 回答 (4件)

void * は汎用ポインタといって、特定の型を指さないポインタ。


ポイント先を参照するときは必ずキャストが必要。
任意のポインタは汎用ポインタにキャストなしで代入できる。

void ** は汎用ポインタへのポインタ。
    • good
    • 1

'**'(ダブルポインター)は「ポインターへのポインター」です。


この場合、型がvoidであるポインターへのポインターです。
    • good
    • 0

void * がわかるのでしたら。



そのvoid *型 へのポインタを宣言するなら、どうしたらいいと思いますか?

ポインタへのポインタはよく出てきます。
混乱しないように勉強しましょう。
    • good
    • 0

間接参照した物が、void * だということでしょう。



あまり意味の無いサンプルですが、
void *a[2];
a[0]=malloc(10);
a[1]=malloc(10);
hoge(a);
というような呼び出しをすると、
int hoge(void **x){
・・・
}
と受けることになります。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!