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

堆的首地址和堆的指针

时间:2014-10-12 20:31:38      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   os   ar   sp   div   log   

 1 #include "stdafx.h"
 2 #include "iostream"
 3 
 4 using namespace std;
 5 
 6 class CStu
 7 {
 8 private:
 9     int M_Id;
10     int M_Age;
11 public:
12      void set(int x)
13      {
14          M_Id = x;
15      }
16 
17 };
18 
19 int main(int argc, char* argv[])
20 {
21     CStu *p = new CStu;        //在堆中创建一块可以存储CStu类的内存空间,并用指针p指向这块内存空间的首地址.
22                                //因为创建的这个堆的类型是CStu型.所以指针的类型也是CStu型.
23     cout << p << endl;         //打印出的是这个申请的堆的首地址.这个地址每次编译后都不一样的.
24     cout << &p << endl;        //打印了存放堆地址的这个内存的单元编号.
25 
26 //---把这个堆的指针消除掉----
27     delete p;
28     cout << p << endl;        //删除这个指向堆的指针以后,每次运行,p里面的值得都会改变,有不确定性.
29                             //所以说在这样的情况下,这个p绝对是个迷途指针.
30                             //如果还想找回刚才那个堆的首地址,那是不可能的事,所以一定要注意什么时候用delete.
31 
32     cout << &p << endl;        //p还是存在的,并且p的地址一直没改变,只是p里面的内容再不断改变而已.
33 
34     return 0;
35 }

 

堆的首地址和堆的指针

标签:style   blog   color   io   os   ar   sp   div   log   

原文地址:http://www.cnblogs.com/adalovelace/p/4020778.html

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