关于c编程的内存泄漏问题

时间:2016-03-06 03:15:53

标签: c memory-leaks

此功能是否会导致内存泄漏?

功能是:

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;
}

3 个答案:

答案 0 :(得分:1)

是的,确实如此:它返回存储在已分配内存中的值的副本,但分配的内存本身已泄露(因为地址已经丢失了#34;)。

答案 1 :(得分:0)

是的,因为您正在分配该双精度而不是释放它或返回指针(或使其可全局访问)。一旦函数返回,指针就会丢失,因此无法释放。

答案 2 :(得分:0)

它将生成分段错误,因为您释放了在函数内分配的内存地址。

因此,一旦函数返回,它的分配就会丢失。