首页 > 代码库 > 堆的首地址和堆的指针
堆的首地址和堆的指针
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 }
堆的首地址和堆的指针
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。