C语言realloc函数解析
来源:互联网 发布:it培训公司起名 编辑:程序博客网 时间:2024/06/11 19:42
在网上查了很多资料,终于大概知道了这个函数的原理
void *realloc(void *ptr, size_t size);
作用:更改已经配置的堆内存空间,说白了在C语言中就是更改由malloc()函数分配的内存空间的大小。
当需要将已分配的内存减小时,则返回原指针,仅仅是对应索引的内存空间减小了
当需要将已分配的内存增大时:则分为以下3种情况:
1)如果当前内存段后面有需要的内存空间,则直接扩展这段内存空间,realloc()将返回原指针。
2)如果当前内存段后面的空闲字节不够,那么就使用堆中的第一个能够满足这一要求的内存块,将目前的数据复制到新的位置,并将原来的数据块释放掉,返回新的内存块位置。
3)如果申请失败,将返回NULL,此时,原来的指针仍然有效。
不过有一点需要注意的是:如果调用成功,不管当前内存段后面的空闲空间是否满足要求,都会释放掉原来的指针,重新返回一个指针,虽然返回的指针有可能和原来的指针一样,即不能再次释放掉原来的指针。
接下来请看代码示例:
0 0
- C语言realloc函数解析
- c语言中realloc()函数解析
- c语言中realloc()函数解析
- c语言中realloc()函数解析
- c语言中realloc()函数解析
- c语言中realloc()函数解析
- c语言中realloc()函数解析
- c语言中realloc()函数解析
- c语言中realloc()函数解析
- c语言中realloc()函数解析
- c语言中realloc()函数解析
- C语言函数realloc
- C语言函数realloc
- C语言函数realloc
- C语言函数realloc
- C语言函数realloc
- C语言realloc()函数
- C语言之realloc函数
- 配置 .NET Core debugger
- Docker实战之安装配置HBase-1.2.2完全分布式集群
- 临摹天气效果界面= =
- Html的基本结构
- 解析第二代身份证号码
- C语言realloc函数解析
- Fragment学习笔记
- OpenCV15(摄像机标定)
- win7下IIS的安装和配置 图文教程
- C++ 11 正则表达式
- UVA(11054)
- PHP中全局变量global和$GLOBALS[]的区别
- OutOfMemoryError --- Java heap space
- android学习之路(一)