关于malloc类函数的小结



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()函数的几点建议:

  1. 申请操作系统分配内存空间;

  2. 检验是否成功(检查是否返回一个空指针)

  3. 使用memset将申请的内存清空

  4. 使用完内存后,及时释放申请的内存。

版权声明:本文为博主原创文章,未经博主允许不得转载。

posted on 2015-03-22 22:22  zmrlinux  阅读(608)  评论(0编辑  收藏  举报

导航