欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C++的new和delete

程序员文章站 2022-07-02 21:50:37
#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; }