代码改变世界

realloc function

2009-04-30 20:28  cesc711  阅读(200)  评论(0编辑  收藏  举报

函数原型
void* realloc(void* mem_block,int new_size);
函数功能:改变men_block指针所指内存区域的大小为new_size。
函数返回:若重新分配成功,返回指向新内存区域的指针。否则返回NULL。
函数说明:realloc()方法试图从当前堆上现存的数据后面获得附加字节,如果后面内存的大小还有足够的内存可以分配,那么得到的是一块连续的内存。如果后面内存的大小不够,则在堆中重新寻找一块new_size大小的内存,将原先内存中的数据拷贝到新内存中,返回新内存的指针。而原先的内存不变。
特殊情况:若men_size为NULL,则相当于malloc()方法的功能。若men_size不为NULL, new_size为0,则释放指针所指的内存。如果指针值发生改变的时候,realloc方法会free掉原先指针所指向的内存,但是它并没有将空间中的数据删除,只是告诉编译器这块内存处于为分配的情况下。