[英]memory leak questions about c programming
這個功能會導致內存泄漏嗎?
功能是:
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;
}
是的,它確實:它返回存儲在已分配內存中的值的副本,但分配的內存本身被泄露(因為地址已“丟失”)。
是的,因為您正在分配該雙精度而不是釋放它或返回指針(或使其可全局訪問)。 函數返回后,指針會丟失,因此無法釋放。
它將生成分段錯誤,因為您釋放了在函數內分配的內存地址。
因此,一旦函數返回,它將失去分配。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.