zoukankan      html  css  js  c++  java
  • 堆的首地址和堆的指针

     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 }
  • 相关阅读:
    Swing 2
    Swing 1
    集合
    关于sql 模糊字段查询语句
    关于前端开发的几篇文章
    黄金点游戏
    word count
    四则运算
    软件工程——《构建之法》读后困惑
    自我介绍
  • 原文地址:https://www.cnblogs.com/adalovelace/p/4020778.html
Copyright © 2011-2022 走看看