在这种情况下是否有任何内存泄漏?

Ono*_*Ono 2 c++ memory pointers

这是代码,一个执行一些缓冲操作的函数:

void DoProfile (double* profile, double* &projection, int S, int H, double T)
{
    double* p = projection;

    for (int h = 0; h < H; h++)
    {
        memcpy(p, profile, sizeof(double)*S);
        p += S;
    }

    // should p be deleted here like following?
    // delete p;
    // p = NULL;
}
Run Code Online (Sandbox Code Playgroud)

我不确定,但据我所知,只要不重点,那么最后不需要删除?有人请教育我.谢谢.

Ove*_*Ove 5

你是对的,p不需要在函数调用结束时释放,因为你没有为它分配任何内存.所以这方面的功能还可以.

但是当然你需要在这个功能之外profileprojection之外正确管理内存.您还需要确保已分配足够的内存来容纳所有数据,以免导致访问冲突错误.