如果我在一组新的花括号中创建一个变量,那个变量是从结束括号上的堆栈中弹出的,还是会挂起直到函数结束?例如:
void foo() {
int c[100];
{
int d[200];
}
//code that takes a while
return;
}
Run Code Online (Sandbox Code Playgroud)
会不会d是在占用内存code that takes a while部分?
例如:
int main() {
Foo *leedle = new Foo();
return 0;
}
class Foo {
private:
somePointer* bar;
public:
Foo();
~Foo();
};
Foo::~Foo() {
delete bar;
}
Run Code Online (Sandbox Code Playgroud)
析构函数会被编译器隐式调用还是会出现内存泄漏?
我是动态内存的新手,所以如果这不是一个可用的测试用例,我很抱歉.