动态内存分配
来源:互联网 发布:linux 添加系统调用 编辑:程序博客网 时间:2024/05/18 02:12
1.malloc
void *malloc(size_t size)malloc的参数就是要分配的字节数,如果内存池中可用的内存满足这个条件,malloc就返回一个指向被分配的内存块起始位置指针。
malloc分配的是一块连续的内存,如果内存池是空的,或者它的内存无法满足要求,malloc就返回一个NULL指针。因此,对malloc返回值就行NULL检查是必要的。
2.calloc
void *calloc(size_t num_elements,size_t element_size)
calloc和malloc一样,它分配num_elements*element_size个字节的内存,和malloc不同的地方是,calloc会把这块内存初始化为0.
3.realloc
void *realloc(void *ptr,size_t new_size)
realloc用于修改一个原先已经分配的内存块大小,使用这个函数可以使一块内存块扩大或者缩小。第一个参数是指向内存块的指针,第二个参数是修改后的内存大小。
如果原先的内存块无法满足改变大小的要求,realloc将分配另一块正确大小的内存,并把原先的内容复制过去,。因此,在使用realloc之后,最好不要使用指向旧内存的指针,而是使用realloc返回的指针。
4.free
void free(void *ptr)free的参数要么是NULL,要么是malloc、calloc或realloc返回的值。
free一个NULL不会产生任何效果。
阅读全文
0 0
- 动态内存分配
- 关于动态内存分配
- 关于动态内存分配
- 动态内存分配
- 动态内存分配
- 动态内存分配
- 动态内存分配
- 动态内存分配
- C++ 动态内存分配
- VC动态内存分配
- 动态数组分配内存
- C++动态内存分配
- 动态内存分配
- 动态内存分配
- 动态内存分配
- 动态内存分配
- 动态内存分配+链表
- 动态内存分配函数
- 【AngularJS】表格的格式<table>
- mysql5.7-主从设置
- 560. Subarray Sum Equals K
- 微信支付流程
- C语言基础-预处理指令25
- 动态内存分配
- 搜索 I题
- POI 复制多个excel文件 合并为一个总excel文件
- 正确理解ThreadLocal
- 厉害了!13个GIS开源软件
- 深入理解阻塞队列(一)——基本结构
- Winform程序发布技巧
- iOS开发RAC学习笔记(九)信号的一些延时,重复等操作
- 简单网络嗅探器