2017-02-13 85 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。所以沒有任何理由寫這個代碼。