У меня есть функция Quit, которая получает пустоту **, и мне нужно передать ее новой функции, получающей DataStructure *.void * не является указателем на тип объекта - Ошибка литья из void **
Проблема в том, что данные в ds заменяются мусором. Что я могу сделать ?
void Quit(void** DS){
DataStructure* ds = (DataStructure*) *DS;
return ds->Quit(); //'void*' is not a pointer to object type
}
когда определение второй Quit() является:
void DataStructure::Quit();
и вызов в основном делаются следующим образом:
DataStructure *data;
Quit((void**) &ds);
Мы получаем тот же результат, если мы бросим следующим образом:
DataStructure* ds = reinterpret_cast<DataStructure*>(*DS);
'((структура данных *) * DS);' выглядит как NOP. –
вам необходимо предоставить полную ошибку компиляции и/или полный пример –
Если 'data' не указывает на действительную' DataStructure', вы не можете ожидать, что что-то будет работать. – molbdnilo