此功能是否会导致内存泄漏?
功能是:
double list(double *list2){
double *list3=(double *)malloc(sizeof(double));
some operations...
return *list3;
}
更新
这可能有帮助吗?int main(){
operations...
double list4;
list4=list(&list4);
free(&list4);
return 0;
}
答案 0 :(得分:1)
是的,确实如此:它返回存储在已分配内存中的值的副本,但分配的内存本身已泄露(因为地址已经丢失了#34;)。
答案 1 :(得分:0)
是的,因为您正在分配该双精度而不是释放它或返回指针(或使其可全局访问)。一旦函数返回,指针就会丢失,因此无法释放。
答案 2 :(得分:0)
它将生成分段错误,因为您释放了在函数内分配的内存地址。
因此,一旦函数返回,它的分配就会丢失。