realloc函数

1. realloc失败的时候,返回NULL

2. realloc失败的时候,原来的内存不改变,也就是不free或不move,(这个地方很容易出错)

3. 假如原来的内存后面还有足够多剩余内存的话,realloc的内存=原来的内存+剩余内存,realloc还是返回原来内存的地址; 假如原来的内存后面没有足够多剩余内存的话,realloc将申请新的内存,然后把原来的内存数据拷贝到新内存里,原来的内存将被free掉,realloc返回新内存的地址

4. 如果size为0,效果等同于free()

5. 传递给realloc的指针必须是先前通过malloc(), calloc(), 或realloc()分配的

6. 传递给realloc的指针可以为空,等同于malloc。

原文地址:https://www.cnblogs.com/ph829/p/4089574.html