首页 > 编程语言 > 详细

C++指针与内存泄露

时间:2016-03-15 18:33:06      阅读:260      评论:0      收藏:0      [点我收藏+]

基本知识:

指针是一个变量,存储某个变量的地址(例:0x00aabbcc);

*运算为间接值(indirect)运算符,或解除引用(dereferencing)运算符;

 

指针初始化:

  使用指针(*运算符取值)之前,必须先初始化指针(让指针指向一个变量)。

  创建指针时,计算机会分配内存来存储变量的地址,但不会分配内存来存储变量的值。

  int * pTemp; // 空指针,未赋值 *pTemp指向未知位置

  *pTemp = ImmediateValue; // 会发生未知错误

  指针赋值:

    pTemp = &variable;  // 指针指向一个变量

    pTemp = 0x00aabbcc;  // 指针指向一个地址

    typeName * pointer_name = new typeName;  // 

                             // int * pTemp = new int;

    其中第一种(常规变量)和第二种赋值分配在栈(stack)中,第三种(new运算符)分配在堆(heap)中

  

清理内存:

  new和delete应该成对出现,由new申请的内存必须由delete释放,否则将会发生内存泄漏(memory leak),被分配的内存无法再被使用。

  内存泄露产生原因:没有释放(在堆中申请的)内存。

  对空指针使用delete是安全的,但不要对已经释放的内存块,因为会产生不确定的后果。

 

其他问题:

  指针的大小;

  指针的运算(加减除);

  

C++指针与内存泄露

原文:http://www.cnblogs.com/GregoRay/p/5280292.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!