初学C++,请教关于new和delete的问题。这是代码。#include iostreamusing namespace stdint main(){int* p
初学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++ [解决办法] 是的,你修改的数据可能是重要数据,可能会引起灾难性错误,而你读取的数据也可能是别人的数据