#include <stdlib.h>
realloc(void *__ptr, size_t __size):
更改已經配置的內存空間,即更改由malloc()函數分配的內存空間的大小。
若是將分配的內存減小,realloc僅僅是改變索引的信息。
若是是將分配的內存擴大,則有如下狀況:
1)若是當前內存段後面有須要的內存空間,則直接擴展這段內存空間,realloc()將返回原指針。
2)若是當前內存段後面的空閒字節不夠,那麼就使用堆中的第一個可以知足這一要求的內存塊,將目前的數據複製到新的位置,並將原來的數據塊釋放掉,返回新的內存塊位置。
3)若是申請失敗,將返回NULL,此時,原來的指針仍然有效。
注意:若是調用成功,無論當前內存段後面的空閒空間是否知足要求,都會釋放掉原來的指針,從新返回一個指針,雖然返回的指針有可能和原來的指針同樣,即不能再次釋放掉原來的指針
https://blog.csdn.net/weixin_43886592/article/details/86537483 函數