[英]freeing memory issue
我有一個關於釋放內存的問題,如下:
string points; // some points sequences
char* charPoints = (char*)malloc((points.length() +1) * sizeof(char));
//do something
free(charPoints);
即使這樣,在用儀器檢查后釋放內存也會泄漏
我看到的唯一問題是當malloc返回NULL時,因為它無法分配足夠的連續內存。 你確定內存泄漏是由malloc / free引起的嗎?
傳遞給free
的指針必須與malloc
返回的指針相同。 如果傳遞不同的指針,將導致未定義的行為。 在執行操作之前獲取指針的副本,例如遞增charPoints
,然后將此原始指針傳遞給free
函數以正確釋放內存。
您的泄漏檢測儀器很糟糕。
釋放內存更新后,顯示如下所示的NULL值
自由(charPoints); charPoints =“NULL”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.