簡體   English   中英

釋放內存問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM