プロトタイプが次の関数を見たことがあります。
int myfunc(void** ppt)
この関数は、C ファイルで a = myfunc(mystruct **var1); として呼び出されます。
mystruct は、構造体の 1 つの typedef です。
これは MSVC6.0 ではコンパイル エラーなしで動作しますが、他の C コンパイラでコンパイルすると、この関数が呼び出された場所でエラー メッセージが表示されます。
タイプ mystruct ** の引数はタイプ void ** のパラメーターと互換性がありません
myfunc() の引数は void** として保持されます。これは、メモリ割り当てのためにさまざまな構造体変数型で呼び出される一般的な malloc のような関数のように見えるためです。
- C 標準/任意の C コンパイラで許可されている void ** などの型はありますか?
- これを修正するにはどうすればよいですか? 【関数呼び出しの引数を にキャストしてみ
mystruct**
ましたがダメでした】
-広告