2017-02-24 85 views
-1
int *x = new int; 
*x = 5; 

cout << x << endl; 
delete[] x; 

我想動態地將資源分配給變量'x'。然後我給它賦值'5'。當我嘗試打印'x'的值時,我得到一些稱爲0x8321的垃圾值等等。我相信這不是我分配的價值。無法訪問指針的值C++

任何想法如何我可以訪問x的值?

回答

3

您必須使用std::cout << *x << std::endl

您得到的值是指針指向的內存(區域)的地址。

編輯:並使用delete x;而不是delete[] x;

+1

也不要忘記'刪除x;'而不是'刪除[] x'' – dmi

+0

是的,相應地對答案做了修改。 –

+1

在定義主函數的文件中使用指令並不是不好的做法,通常是相反的,即在整個程序中使用_std :: _。 – Klaus

1

您正在打印指針的地址。如果你想要的值你應該做 cout << *x << endl