该教程适用
1.realloc失败的时候,返回NULL;2.realloc失败的时候,原来的内存不改变,不会释放也不会移动;3.假如原来的内存后面还有足够多剩余内存的话,realloc的内存=原来的内存+剩余内存,realloc还是返回原来内存的地址;假如原来的内存后面没有足够多剩余内存的话,realloc将申请新的内存,然后把原来的内存数据拷贝到新内存里,原来的内存将被free掉,realloc返回新内存的地址;4.如果size为0,效果等同于free()。这里需要注意的是只对指针本身进行释放,例如对二维指针a,对a调用realloc时只会释放一维,使用时谨防内存泄露;5.传递给realloc的指针必须是先前通过malloc(),calloc(),或realloc()分配的;6.传递给realloc的指针可以为空,等同于malloc。
工具:
型号:
系统:
软件:
操作步骤/方法
方法教程
1 realloc函数使用规则如下: 2 1.realloc失败的时候,返回NULL; 3 2.realloc失败的时候,原来的内存不改变,不会释放也不会移动; 4 3.假如原来的内存后面还有足够多剩余内存的话,realloc的内存=原来的内存+剩余内存,realloc还是返回原来内存的地址;假如原来的内存后面没有足够多剩余内存的话,realloc将申请新的内存,然后把原来的内存数据拷贝到新内存里,原来的内存将被free掉,realloc返回新内存的地址; 5 4.如果size为0,效果等同于free()。这里需要注意的是只对指针本身进行释放,例如对二维指针a,对a调用realloc时只会释放一维,使用时谨防内存泄露; 6 5.传递给realloc的指针必须是先前通过malloc(),calloc(),或realloc()分配的; 7 6.传递给realloc的指针可以为空,等同于malloc。 8 realloc函数为C语言函数。其功能为先判断当前的指针是否有足够的连续空间,如果有,扩大mem_address指向的地址,并且将mem_address返回,如果空间不够,先按照newsize指定的大小分配空间,将原有数据从头到尾拷贝到新分配的内存区域,而后释放原来mem_address所指内存区域,同时返回新分配的内存区域的首地址,即重新分配存储器块的地址。