gpt4 book ai didi

c++ - 为变量分配新值时内存泄漏?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:08:14 24 4
gpt4 key购买 nike

是的,我是那些从 Java 学习 C++ 的人之一,被自动垃圾收集器宠坏了。有一种特殊情况,我想知道我是否正在泄漏内存。让我们在 C++ 中考虑:

bool *test = new bool(false);
test = new bool(true);
delete test;

我在这里泄漏内存了吗?或者我应该在分配新值之前先调用 delete 吗?像这样:

bool *test = new bool(false);
delete test;
test = new bool(true);
delete test;

我的直觉告诉我第一个是正确的,因为指针 test 指向内存中的同一地址,并为其变量分配一个新值,不会改变这个地址。或者 new 运算符是否在内存中分配了不同的地址?任何人都可以给我一个线索,还是我一起弄错了?

最佳答案

是的,你在泄漏,C++ 的方法是:

bool test = false;
test = true;

// ta-da - no leak.

您可以采用第二种方法 - 但是您可能会皱眉......

关于c++ - 为变量分配新值时内存泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6982822/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com