プロが教える店舗&オフィスのセキュリティ対策術

VisualStudio 2008 を使ってOpenCVを勉強中なのですが、

IplImage *dst;

cvRelease(&dst);
をすると、

error C2664: 'cvRelease' : 1 番目の引数を 'IplImage **__w64 ' から 'void **' に変換できません。(新しい機能 ; ヘルプを参照)

と出ます。
確か、void*はどの型からでも明示型キャストは必要なかったと思うのですが、これはVisual Studio 2008 の仕様ですか?

A 回答 (2件)

★アドバイス


>確か、void*はどの型からでも明示型キャストは必要なかったと思うのですが、
>これはVisual Studio 2008 の仕様ですか?
 ↑
 C言語ではキャストしなくても良い。
 C++言語ではキャストしないといけない。
 C/C++のどちらでコンパイルしていますか?
 VC2008の仕様より言語仕様と思います。
 確認して下さい。
    • good
    • 0
この回答へのお礼

>C/C++のどちらでコンパイルしていますか?
C++でした。
試しにCでコンパイルしたところエラー無しでした。
ありがとうございます。

お礼日時:2008/05/17 15:01

C++でも任意のポインタから void * へは暗黙の型変換が可能です。


でも、void** は、void * ではありません。
ということです。

ちなみに、Cだと、void ** へも暗黙の型変換できてしまうようです。
    • good
    • 0

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