voidを受け取る関数Quitがあります。**私はDataStructure *を受け取った新しい関数に渡す必要があります。void *はオブジェクト型へのポインタではありません - voidからのキャストエラー**
問題は、dsのデータがガベージに置き換えられることです。私に何ができる ?
void Quit(void** DS){
DataStructure* ds = (DataStructure*) *DS;
return ds->Quit(); //'void*' is not a pointer to object type
}
秒の定義が終了し
は()です:void DataStructure::Quit();
とメインで呼び出しは次のように行われます。私たちはキャストば我々は同じ結果を得る
DataStructure *data;
Quit((void**) &ds);
次のようになります。
DataStructure* ds = reinterpret_cast<DataStructure*>(*DS);
'((データ構造*)* DS)が
;'のように見えますNOP。 –完全なコンパイルエラーや完全な例を提供する必要があります –
'data'が有効な' DataStructure'を指していない場合、動作するものは何も期待できません。 – molbdnilo