realloc的使用誤區

void *ptr = realloc(ptr, new_size); if (!ptr) { // 錯誤處理 } 這裏就引出了一個內存泄露的問題,當realloc() 分配失敗的時候,會返回NULL。可是參數中的 ptr 的內存是沒有被釋放的。若是直接將realloc()的返回值賦給ptr。那麼當申請內存失敗時,就會形成ptr原來指向的內存丟失,形成內存遊離和泄露。 正確的處理應該是這樣:spa
相關文章
相關標籤/搜索