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; 和不加有什么区别?
...全文
21114打赏收藏
初学C++,请教关于new和delete的问题。
这是代码。 #include 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所指向的内存