nuc*_*ear 2 c++ memory heap stack pointers
给定一个带有语句的函数foo:
void foo() {
std::string * s;
}
Run Code Online (Sandbox Code Playgroud)
此函数返回后是否回收了内存?
我假设是的,因为这个指针并没有指向任何东西,但有些人说不 - 这是一个悬垂的指针.
ger*_*tan 10
std::string* s只是一个未初始化的指向字符串的指针.当函数foo返回时,指针将被销毁(因为指针本身是在堆栈上分配的局部变量).没有std::string创建过,因此你不会有任何内存泄漏.
如果你说
void foo() {
std::string * s = new std::string;
}
Run Code Online (Sandbox Code Playgroud)
然后你会有内存泄漏