C语言 指针的释放有关问题

C语言 指针的释放问题
我要写一个C语言函数,返回值是一个在此函数内部malloc的指针变量,请问这个指针我应该什么时候释放?如何释放?
我想,不可能在函数return前调用free释放,这样返回这个指针就没有意义
可是这个函数返回后,我还能再操作这个指针进行free吗?

------解决方案--------------------
C/C++ code
你可以直接free返回去的那个。。。比如TestMalloc返回一个malloc的指针
char *p = TestMalloc();
free(p);//

------解决方案--------------------
使用malloc分配的内存是从堆上分配的,跟是否是在函数内分配无关,所以可以在从该函数返回后,再调用free进行释放.
------解决方案--------------------
探讨

你是说这个函数返回后我还可以再操作这个指针进行free?
这个指针不是这个函数的局部变量吗?
不好意思,有点晕了

引用:

可以的

------解决方案--------------------
C/C++ code


#include   <stdio.h> 
#include   <stdlib.h> 
#include   <malloc.h> 

char* test(int len)
{
    char* p = NULL;
    
    p = (char*)malloc(len);//申请内存

    return p;
}

void main()
{
    int len = 5;
    char str0[] = "123";
    char *pTemp = NULL;

    pTemp = test(len);
    memcpy(pTemp, str0, strlen(str0));
    free(pTemp);//用完以后释放
    pTemp = NULL;

    return;
}

------解决方案--------------------
探讨

你是说这个函数返回后我还可以再操作这个指针进行free?
这个指针不是这个函数的局部变量吗?
不好意思,有点晕了