【发布时间】:2013-09-09 17:41:16
【问题描述】:
如何在 C++ 中删除指针但不删除指针指向的对象? 提前致谢。
【问题讨论】:
-
删除指针是什么意思?您不会删除指针(除非您动态分配它们)而是它们指向的对象。
-
只是等待指针超出范围?
-
您是否为该指针分配了内存,与它指向的对象的内存分开?你的问题没有多大意义。
-
删除指针涉及调用类型的析构函数并释放内存。根据您的实现,您可以简单地调用 free() 或执行 'delete (void*)p;'
-
@edwinc 虽然在技术上是正确的,但自动生成的指针类型析构函数几乎是无操作的...
int **pp = new (int *); delete pp;除了调用new和delete之外并没有做太多事情。 ..