系统相关
首页 > 系统相关> > 使用new和delete管理动态内存的常见问题

使用new和delete管理动态内存的常见问题

作者:互联网

使用new和delete管理动态内存存在三个常见问题

  1. 忘记delete内存。
    忘记释放动态内存会导致“内存泄漏”的问题,因为这种内存永远不可能被归还给自由空间。查找内存泄漏错误是非常困难的,因为通常应用程序运行很长时间后,真正耗尽内存时,才能检测到这种错误。
  2. 使用已经释放掉的对象。
    通过在释放内存后将指针置为空,有时可以检测出这种错误。
  3. 同一块内存释放两次。
    当有两个指针指向相同的动态内存分配对象时,可能发生这种错误。如果对其中一个指针进行了delete操作,对象的内存就被归还给自由空间了。如果我们随后又delete第二个指针,自由空间就可能被破坏。

所以坚持使用智能指针,就可以避免这些问题。对于一块内存,只有在没有任何智能指针指向它的情况下,智能指针才会自动释放它。

田怼怼 发布了53 篇原创文章 · 获赞 5 · 访问量 2231 私信 关注

标签:释放,常见问题,自由空间,内存,动态内存,new,指针,delete
来源: https://blog.csdn.net/tianduidui/article/details/104515225