假设我们有以下 C++ 代码:
while(condition)
{
Node* temp = SomeNode->next;
//...
}
destructor()
{
//delete Nodes;
}
这temp
是一个局部指针变量,CurrentNode
是一个公共类属性。公共节点和相关节点在析构函数中被释放。但是所有局部范围的指针变量会发生什么。指针数据类型消耗一些内存,例如 4 个字节或更多(取决于内存空间),仅用于地址。在这里,temp
局部变量没有用'new'初始化,只是一个指向其他节点的指针,基于此,temp
局部变量是在堆栈上还是在堆上?这个局部变量是在退出块后很快自动销毁还是它是动态内存但需要使用 of delete
. 我在某处看到了一些代码,这些代码不能delete
用来释放不是用new
. 我想确定他是否错过了释放变量,或者还有其他一些我不知道的故事。谢谢。