Hu Zhenyu's Blog


访客计数:
net traffic statistics

about

GNU編碼標準中關於使用內存分配例程的論述

每次調用malloc或realloc時都要進行檢查,看他們是否返回零。即使縮小內存塊,也要檢查realloc是否返回零。有些系統把內存塊大小圓整爲2的整數次冪,在這些系統上,如果你要求分配更少的空間,那麼realloc可能得到一個不同的內存塊。

在Unix環境下,如果realloc返回零,那麼它會清除原來的內存塊。GNU realloc沒有這個Bug: 如果函數分配失敗,原始塊不會有變化,你只管假設這個bug已經修復了。如果你希望在Unix環境下運行你的程序,並且希望避免分配失敗情況下丟失原始塊,那麼你可以使用GNU malloc。

你必須明白,free會改變那些釋放掉的內存塊的內容。因而,你必須在調用free之前,從內存塊中提取出所有你想提取的東西。

上一篇: Free一個動態指針兩次會怎樣?
下一篇: 数组初始化的一个问题


知识共享许可协议

本站采用 知识共享署名-非商业性使用-相同方式共享3.0 中国大陆许可协议 进行许可,转载请注明出处。

推荐使用 chrome 浏览器浏览本站。