myObj* var = new myObj;
var = other1;
不再需要它
delete var;
var = new myObj;
var = other2;
为什么不能取消引用而不是再次删除和分配?
var->other2;
myObj* var = new myObj;
var = other1;
不再需要它
delete var;
var = new myObj;
var = other2;
为什么不能取消引用而不是再次删除和分配?
var->other2;
你的问题很愚蠢,绝对没有冒犯的意思。换句话说,您在这里有一个潜在的困惑,无法通过简单的询问回答来解决。
我强烈建议您阅读 C 或 C++ 的介绍性材料。网络充斥着精彩的讲座和免费的电子书。你不会后悔的!
谷歌周围:),也许,你会在几天后回来回答你自己的问题。
快乐编码!
其他人评论了您对术语的困惑。我会评论你的代码。
当你这样做时:
myObj* var = new myObj;
var = other1;
您正在创建内存泄漏。new myObj
为结构分配内存,并设置var
指向那里。然后,当您重新分配var
时,您不再有指向已分配结构的变量。C++ 没有自动垃圾回收,因此无法再访问此内存,但您也没有可delete
用于回收它的变量。
var = other1
重新分配指针,它不复制内容;如果要复制结构,则必须编写:
*var = *other1;
当你这样做时:
delete var;
您不是在删除原始结构,而是在删除other
指向的任何内容。仅当该结构是使用创建的时才有效new
。
您肯定需要返回并查看所有关于 C++ 指针的教学材料。