Malloc 函数
基于redhat Linux 7.0关于malloc 翻译
Malloc 函数族函数
:malloc free calloc realloc ---分配与释放内存
简介:
#include<stdlib.h>
#include<malloc.h>
Void *malloc(sizet size);
Void free(void*ptr);
Void*calloc(size t number,size t size );
Void *realloc(void*ptr ,size t size);
分类描述:
Malloc()
Malloc 函数可以分配内存并且返回一个指针,指向以经分配的内存,这块刚刚分配的内存是没有被初始化的。如果这个内存不足,那么malloc()函数返回一个空指针,或者一个特定的指针值。成功分配的内存需要使用free()释放。
free()
free()函数可以释放由malloccalloc realloc函数分配的内存。如果不释放之前分配的内存就会造成内存泄露,这是一个很棘手的问题,这个BUG会一点点的侵蚀你的内存。
Calloc()函数
与malloc() 函数类似可以动态的分配内存,但是这个函数接受两个参数,第一个参数是需要内存单元的数量,第二个是每个单元以字节计算的大小,这个函数还有一个特性就是可以将块中的位置全部初始化为0;
relloc()函数
Relloc()函数用来修改一个原先已经分配的内存块的大小。使用这个函数,可以使一块内存扩大或者缩小。如果用来扩大,那么这个块保留把扩大的部分放在原来块的后边。如果用来缩小一个块,则从块的后边拿掉需要缩小的块,剩下的块依然保留。如果无法改变以存在的内存的大小,那么就另开辟一个内存块并且把原来的内存内容放进新的内存块中,此时旧指针不能再使用,只能使用新的指针。
使用malloc()函数的几点建议:
-
申请操作系统分配内存空间;
-
检验是否成功(检查是否返回一个空指针)
-
使用memset将申请的内存清空
-
使用完内存后,及时释放申请的内存。
版权声明:本文为博主原创文章,未经博主允许不得转载。