初学C++,请教关于new和delete的问题。
这是代码。
#include <iostream>
using namespace std;
int main()
{
int* p = new int;
*p = 8;
cout<<*p<<endl;
delete p;
// p = new int;
*p = 100;
cout<<*p<<endl;
delete p;
return 0;
}
是这样的。我用new申请了一个内存,然后存入了8,然后将p所指向的内存释放掉。
这时我再用*p,存入100也可以成功。
我想问的是,*p所指向的内存不是已经释放掉了么?那么这个100存入了哪里?
如果我加上 p = new int ,得到的结果也是一样的。
所以,加上下面这行的 p = new int; 和不加有什么区别? c++
[解决办法]
是的,你修改的数据可能是重要数据,可能会引起灾难性错误,而你读取的数据也可能是别人的数据