【发布时间】:2011-02-25 10:07:00
【问题描述】:
如果我有一个指向堆中特定内存地址的指针。我希望这个 same 指针指向另一个内存地址,我应该先delete 指针吗?但是,在这种情况下,我实际上是在删除指针还是只是破坏了指针指向的引用(内存地址)?
所以,换句话说,如果我delete 是一个指针,这是否意味着它不再存在?或者,它在那里,但没有指出它在哪里?
【问题讨论】:
-
除了给出的答案之外,请注意 C++ 还有 new[] 和 delete[] 运算符,它们不只是分配/删除一个对象,而是整个数组。这是该语言的一个非常愚蠢的功能,因为它很容易在忘记 [] 时造成内存泄漏。到目前为止,最好的解决方案是根本不使用 new/delete,而是使用智能指针类:en.wikipedia.org/wiki/Smart_pointer
标签: c++ pointers delete-operator