|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
我要写一个C语言函数,返回值是一个在此函数内部malloc的指针变量,请问这个指针我应该什么时候释放?如何释放?
我想,不可能在函数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 以下的代码基本作废。
|
|