2017-02-13 11 views
-1

Я хочу иметь точку указателя Int к двойной, но я ПОЛУЧАТЬ следующее сообщение об ошибке: «не может преобразовать„двойной *“до„междунар *“в назначении»Назначение указателя Int к двойной переменной

сказать, что мы имеют:

double myVar1; 
int *myPointer1 = new int; 

myPointer = &myVar1; (cannot convert 'double*' to 'int*' in assignment error) 

Как исправить мой код? Я не могу сделать указатель «двойным», потому что это для школьного задания, и меня попросили использовать эти типы данных.

+4

Вы уверены, что это то, что вы должны делать с вашим заданием? –

+0

1) Вы не можете этого сделать. 2) В вашем коде содержится утечка памяти ('new' без соответствующего' delete', а указатель, возвращаемый 'new', будет потерян). – melpomene

+0

Я не уверен, что это было бы не в первый раз, когда была опечатка в домашнем задании. Чтобы выполнить задание, я просто сделал указатель двойным. В моем коде у меня есть соответствующее удаление. – Andrew

ответ

2

Вы можете написать:

int *myPointer1 = reinterpret_cast<int *>(&myVar1); 

Однако это будет undefined behaviour использовать этот указатель, чтобы попытаться получить доступ к double. Таким образом, на самом деле нет никакой причины писать этот код.