|  | 
 
| 
我要写一个C语言函数,返回值是一个在此函数内部malloc的指针变量,请问这个指针我应该什么时候释放?如何释放?
x
马上注册,结交更多好友,享用更多功能^_^您需要 登录 才可以下载或查看,没有账号?立即注册  我想,不可能在函数return前调用free释放,这样返回这个指针就没有意义
 可是这个函数返回后,我还能再操作这个指针进行free吗?
 例如:
 
 复制代码typedef struct 
{
        int count;
        float* a;
}var;
var* c()
{
        var* v = (var*)malloc( sizeof(var));
        int c = 0, b, i = 0;
        FILE* fp = fopen("C:\\Users\\hp\\Desktop\\c.txt", "r");
        if (fp == NULL)
        {
                return 0;
        }
        while ((b = fgetc(fp)) != EOF) c += (b == 10) ? 1 : 0;
        float* a;
        a = (float*)scs_malloc(c * sizeof(float));
        fseek(fp, 0, SEEK_SET);
        while (0 == feof(fp))
        {
                fscanf(fp, "%lf ", &a[i]);
                i++;
        }
        v->count = c;
        v->a = a;
        return v;
        free(a);
        free(v->a);
        free(v);
}
return 之后就结束函数了,return 以下的代码基本作废。 | 
 |