Вы должны использовать reinterpret_cast
для наведения указателей, т.е.
r = reinterpret_cast<int*>(p);
Конечно, это не имеет смысла,
Если вы не хотите взглянуть на int
на double
! Вы получите странные результаты, и я не думаю, что это то, что вы хотели. Если вы хотите привести значение , на которое указывает p
, к int
, тогда
*r = static_cast<int>(*p);
Кроме того, r
не является выделенным , поэтому вы можете выполнить одно из следующих действий:
int *r = new int(0);
*r = static_cast<int>(*p);
std::cout << *r << std::endl;
Или
int r = 0;
r = static_cast<int>(*p);
std::cout << r << std::endl;