C++的new和delete

0
11
#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; }

<

发布回复

请输入评论!
请输入你的名字