C++的new和delete
程序员文章站
2022-03-30 23:06:08
#include using namespace std; int main(int argc, char *argv[]) { int *p = NULL; //定义变量,此时&p有值,但p = NULL,即不指向任何内存空间 p = new int; //在堆上分配一个内存 ......
#include <iostream> using namespace std; int main(int argc, char *argv[]) { int *p = null; //定义变量,此时&p有值,但p = null,即不指向任何内存空间 p = new int; //在堆上分配一个内存空间,并使p指向它,p有了值,此时*p的值不确定 *p = 1; //*p的有了值,即p所指的空间有了值 delete p; //释放p所指的空间,*p的值不确定了,但p依然有值,即new所分配的空间的地址
*p = 2; //不报错,给p所指的空间复制 delete p; //挂掉
//所以delete p;之后,一定要p = null; return 0; }