2017-02-13 87 views
-1

我想有一个Int指针指向双,但我recieving以下错误:“不能在分配转换‘双*’到‘廉政*’”分配一个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。所以没有任何理由写这个代码。