是的,我是那些正在学习来自Java的C++的人之一,被自动垃圾收集器宠坏了.有一种特殊的情况,我想知道我是否在泄漏记忆.我们在C++中考虑一下:
bool *test = new bool(false);
test = new bool(true);
delete test;
Run Code Online (Sandbox Code Playgroud)
我在这里泄漏记忆吗?或者我应该delete在分配新值之前先打电话?像这样:
bool *test = new bool(false);
delete test;
test = new bool(true);
delete test;
Run Code Online (Sandbox Code Playgroud)
我的直觉告诉我第一个是正确的,因为指针test指向内存中的相同地址,并为其变量分配新值,不会更改此地址.或者new运营商是否在内存中分配了不同的地址?任何人都可以给我一个线索,或者我是否一起弄错了?