Linux下開發-realloc

啊浪的部落格發表於2017-11-04

realloc(void *__ptr, size_t __size)

更改已經配置的記憶體空間,即更改由malloc()函式分配的記憶體空間的大小。


如果將分配的記憶體減少,realloc僅僅是改變索引的資訊


如果是將分配的記憶體擴大,則有以下情況:
1)如果當前記憶體段後面有足夠的記憶體空間,則直接擴充套件這段記憶體空間,realloc()將返回原指標
2)如果當前記憶體段後面的空閒位元組不夠,那麼就使用堆中的第一個能夠滿足這一要求的記憶體塊,將目前的資料複製到新的位置,並將原來的資料塊釋放掉,返回新的記憶體塊位置。
3)如果申請失敗,將返回NULL,此時,原來的指標仍然有效。

相關文章