2017-02-24 82 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