在方法中使用malloc,主要工作是否免费?

pri*_*v 0 5 c++ malloc

我有以下问题:

如果我malloc在方法中return使用指向我的指针main,并free在我的main中使用指针,我是否已成功释放内存?如果我这样做,这是不好的编程风格吗?

int* mallocTest(int size)
{
    int * array = (int*) malloc(size);
    return array;
}

int main ()
{
    int* pArray = mallocTest(5);
    free (pArray);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

编辑:这个问题的主要目的是我想知道,如果我成功地释放了内存(如果我使用malloc-free / new []-delete []的正确“组合”),当我将其拆分为方法时和主要功能!

EDIT2:更改了代码和主题,以指向问题的预期要点

Sun*_*lly 4

其他答案中解释了将malloc释放它与混合释放。delete

我觉得你想知道malloc在方法中分配的内存是否返回指向的指针main,以及freemain 中的指针是否有效?是的,它可以完成,并且free会清除在其他方法中分配的内存,前提是您有指向该位置的指针。