-1
int *x = new int;
*x = 5;
cout << x << endl;
delete[] x;
我想動態地將資源分配給變量'x'。然後我給它賦值'5'。當我嘗試打印'x'的值時,我得到一些稱爲0x8321的垃圾值等等。我相信這不是我分配的價值。無法訪問指針的值C++
任何想法如何我可以訪問x的值?
int *x = new int;
*x = 5;
cout << x << endl;
delete[] x;
我想動態地將資源分配給變量'x'。然後我給它賦值'5'。當我嘗試打印'x'的值時,我得到一些稱爲0x8321的垃圾值等等。我相信這不是我分配的價值。無法訪問指針的值C++
任何想法如何我可以訪問x的值?
您必須使用std::cout << *x << std::endl
。
您得到的值是指針指向的內存(區域)的地址。
編輯:並使用delete x;
而不是delete[] x;
。
您正在打印指針的地址。如果你想要的值你應該做 cout << *x << endl
也不要忘記'刪除x;'而不是'刪除[] x'' – dmi
是的,相應地對答案做了修改。 –
在定義主函數的文件中使用指令並不是不好的做法,通常是相反的,即在整個程序中使用_std :: _。 – Klaus