0 c++
好吧所以我试图掌握堆的概念及其范围
#include <iostream>
int main(){
{
int* x = new int(10);
}
std::cout<<*x;//ERROR Use of undeclared identifier 'x'
}
Run Code Online (Sandbox Code Playgroud)
但是因为我将它分配给堆,为什么它不再存在于块的范围之后呢?
但是因为我将它分配给堆,为什么它不再存在于块的范围之后呢?
x 是一个自动变量,因此它不存在于声明它的范围之外.
你动态分配的对象确实仍然存在.但是由于在生命周期之后x不再有任何指向该对象的指针,因此不再可能使用它也不能删除它.这称为内存泄漏.