如何删除指针指针?

Mod*_*r71 4 c++

在C++中,如果将指针传递给方法指针,是否首先删除引用的指针?你需要在方法中清理它吗?我正在检查任务管理器中的内存,它正在泄漏!

谢谢!!

Wol*_*ngP 7

您删除指向指针的指针,如下所示:

int** p = 0;
p = new int*;  // create first pointee 
*p = new int;  // create 2nd pointee
**p = 0;       // assign 2nd pointee
// free everything
delete *p;     
delete p;
Run Code Online (Sandbox Code Playgroud)

删除传递给方法的指针对我来说似乎很不寻常.但无论如何:

void freeme(int **p) {
    delete *p;
    *p = 0;
}

int main() {
    int *a = new int;
    *a = 3; 
    freeme(&a);
    // a == 0 now
}
Run Code Online (Sandbox Code Playgroud)

  • 使用C++很多时候传递RAW指针似乎很奇怪. (2认同)