c++ new and delete
  ApTxpH0CpnLS 2023年11月02日 55 0


c++中的new/delete new/delete究竟做了些什么? 在理解这个问题之前,我们先看一下下面的这段程序,有这么一个程序段: class A { public: A() { cout<<"A is here!"< 中定义,是一种无符号整数类型(不一定是int),用来保存对象的大小,这一用法是从C语言中借用过来的,现在你应该明白了吧(我学习的时候可是郁闷了好几天,没有人可以问,因为不知道有个csdn:) new A;实际上做了2件事:调用opeator new,在自由存储区分配一个sizeof(A)大小的内存空间;然后调用构造函数A(),在这块内存空间上类砖砌瓦,建造起我们的对象。同样对于delete,则做了相反的两件事:调用析构函数~A(),销毁对象,调用operator delete,释放内存。不过需要注意的是,new分配一块内存的时候,并没有对这块内存空间做清零等任何动作,只是拿了过来,这块内存上放的仍然是原来的数据(垃圾数据),delete的时候,也只是释放这块内存,归还给操作系统,上面的数据还在上面,所以delete pA之后,pA的值没变,他指向的那块内存的值也没有变,不过似乎有什么问题,我们看一下下面的这个程序段: int *p=new int(50000); cout<<*p<<" "<

<

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  yywx2cM7sPmH   2023年11月02日   37   0   0 linux存储
  41QlEa797qE8   2023年11月02日   26   0   0 i++c++ci
  qvce4elbFrsc   2023年11月02日   60   0   0 sedBigc++ideuva
  ez5tOyoSeg4j   2023年11月13日   17   0   0 存储
  bq3W5uVxX3KV   2023年11月02日   28   0   0 c++nginxbash