当前位置: 首页 > C, C/C++ > 正文

关于malloc类函数的小结



Malloc 函数

基于redhat Linux 7.0关于malloc 翻译

Malloc 函数族函数

malloc   free   calloc  realloc —分配与释放内存 

简介:

#include

#include

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. 使用完内存后,及时释放申请的内存。

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

]]>

本文固定链接: http://zmrlinux.com/2015/03/22/%e5%85%b3%e4%ba%8emalloc%e7%b1%bb%e5%87%bd%e6%95%b0%e7%9a%84%e5%b0%8f%e7%bb%93/ | Kernel & Me

该日志由 root 于2015年03月22日发表在 C, C/C++ 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: 关于malloc类函数的小结 | Kernel & Me
【上一篇】
【下一篇】