-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