realloc函数的原型为:
void *realloc(void *ptr,size_t size);
第一个参数ptr是已经由malloc或calloc函数分配的存储区的指针,而realloc函数的作用是对p所指向的存储区进行重新分配即改变大小;第二个参数size是重新分配的存储区的大小(字节数)。
如果他是扩大内存,那么原来这块内存的内容依然保留,新增加的内存添加到原来内存的后面,新曾内存并未以任何方法初始化。
如果他是缩小内存,那么该内存的尾块部分被拿掉,未拿掉的依然保存。
此函数返回值是新存储区的首地址;如果没有足够的内存空间则返回NULL,此时旧存储区内容不变。
如果原先的内存块无法改变大小,realloc将分配另一块正确大小的内存,并把原先那块内存的内容复制到新的块上。因此,在使用realloc之后,就不能在使用指向旧内存的指针,而是应该用realloc返回的新指针。
如果realloc函数的第一个参数是NULL,那么它的作用就和malloc一模一样!
本文来自CSDN博客,转载请标明出处:http://blog.