【问题标题】:Can we stop a std::list from tidying up memory?我们可以阻止 std::list 整理内存吗?
【发布时间】:2021-05-25 06:51:52
【问题描述】:

我定义了这个列表:

using SpecialEventList = list<SPECIAL_EVENT_S*>;

这些项目像这样添加到此列表中:

m_listNewSpecialEvents.push_back(psEvent);

SPECIAL_EVENT_S 指针的原始列表由应用程序类中的另一个列表帮助拥有和管理。

我担心的是,当此对话框关闭时,m_listNewSpecialEvents 会自动删除指针,而我不希望这样做。

我们可以阻止这个列表整理内存吗?

【问题讨论】:

  • 会自动删除指针你为什么这么认为?
  • 可以,但它永远不会delete 指针。它只会清理指针占用的内存。
  • @TedLyngmo 所以我原来的指针/内容将保持不变。
  • @AndrewTruckle 是的,他们指向的内存不会因list被破坏而受到伤害
  • 通常你在列表中没有指针,你会有一个list&lt;SPECIAL_EVENT_S&gt;

标签: c++ stdlist


【解决方案1】:

除非您明确删除指针,否则它不会删除指针。原始指针不会被自动删除。 link

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-09
    • 1970-01-01
    • 2012-04-16
    • 1970-01-01
    • 2015-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多