码迷,mamicode.com
首页 > 其他好文 > 详细

堆中的变量、对象的使用

时间:2016-09-23 20:03:12      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:

堆~变量:

 C++中创建动态指针:

int *p;    //定义整型指针变量p

p = new int;  //new创建一个int类型的内存区域,然后将该区域的内存地址赋给指针变量p,p占用4个字节(int型嘛)

或者  int *p = new int;

释放:delete p;    //将动态内存释放,但是p指针变量还在,并且还指向原来的位置,在又重新创建同一类型的(不同类型的也有可能)堆空间时,p默认还会指向新建的堆,这样会造成两个指针同时指向同一段地址,所以需将p指向空指针(空指针的不当使用可能会造成系统崩溃,也是一种防止调试错误的方法)。但不能删除一个没有指向任何地址的指针,可以删除空指针

p=0;    //记得要跟随在  delete p; 之后!!

 

C中创建堆:

void *malloc(size_t size);    // 参数:size_字节数       返回值:成功返回分配空间的首地址,失败返回 NULL

释放:void free(void *ptr);    //功能:释放由 malloc、calloc、realloc 分配的空间参数, ptr_:空间的首地址 ,无返回值

 

若没有删除动态指针就重新赋值,或者没有使用完之后没有释放,就会造成内存泄漏。

 

堆~对象

在堆中创建一个对象:Human *p = new Human;    //Human 是对象

在堆中删除一个对象:delete p;

访问堆中的的数据成员: (*p).get();    //get()是Human中的一个方法

         或者  p->get();

 

存储在堆中的对象,需要程序员自行对其所占用内存释放后,系统才对内存回收(执行析构函数),否则得等到程序结束。

堆中的变量、对象的使用

标签:

原文地址:http://www.cnblogs.com/simonLiang/p/5901088.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!