отобразить значение из общего указателя

0

У меня есть указатель void, который содержит адрес объекта, но у меня нет типов этого объекта. Мой код похож

VARIANT vtProp;

Теперь получим значение в vtProp с помощью некоторого метода. Он имеет несколько значений.

Теперь я назначил значение в указателе void

void *ptr = vtProp.pparray;

Теперь он получает некоторый массив объекта. Мне нужно получить объект из указателя void, но когда я показывал значение в указателе void, используя

wcout << ptr << endl;

Он отображает только адрес, содержащийся в указателе void.

Не могли бы вы предложить мне, как напечатать имя объекта.

Теги:
visual-c++
variant

1 ответ

0

Это печатает адрес:

void *ptr = vtProp.pparray;
wcout << ptr << endl;

потому что применяется перегрузка operator<<, принимающая void*. В случае, если ptr указывает на объект с name участника, вы должны сделать следующее:

MyObject* ptr = reinterpret_cast<MyObject*>(vtProp.pparray);
wcout << ptr->name << endl;
  • 0
    :Спасибо за ваш ответ. Но я не знаю, какие типы объектов перезапускаются. Итак, как я могу набрать приведение.
  • 0
    @ user2499879: Как вы хотите использовать содержимое этого блока памяти, если не знаете, что там хранится? В этом случае указатель на эту память будет совершенно бесполезен.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню