当前位置:  编程技术>c/c++/嵌入式

C语言中堆空间的生成与释放详解

    来源: 互联网  发布时间:2014-10-18

    本文导语:  堆空间的分配和释放 #include  malloc、calloc、realloc、free malloc void *malloc(size_t size); 功能:在堆中分配 size 字节的连续空间 参数:size_字节数 返回值:成功返回分配空间的首地址,失败返回 NULL  free void free(void *ptr); 功能:...

堆空间的分配和释放
 #include
 malloc、calloc、realloc、free
 malloc
 void *malloc(size_t size);
 功能:在堆中分配 size 字节的连续空间
 参数:size_字节数
 返回值:成功返回分配空间的首地址,失败返回 NULL
 
 free
 void free(void *ptr);
 功能:释放由 malloc、calloc、realloc 分配的空间
 参数:ptr_空间的首地址
 返回值:无
 注意:
 1、每个空间只能释放一次
 2、ptr 必须是分配空间的首地址

 calloc
 void *calloc(size_t nmemb, size_t size);
 功能:在堆中分配 nmemb 块大小为 size 字节的连续空间
 参数:nmemb_数据块数 size_每块大小
 返回值:成功返回分配空间的首地址,失败返回 NULL
 注意:calloc 会把空间内容置 0,而 malloc 不会

 realloc
 void *realloc(void *ptr, size_t size);
 功能:在 malloc、calloc、realloc 分配的 ptr 开始空间,重新分配为 size 字节大小
 参数:ptr_malloc、calloc、realloc 分配空间首地址 size_总大小
 返回值:成功返回分配空间的首地址 失败返回 NULL
 
 注意:
 1、如果 size 小于原空间大小,不会起作用
 2、新增加的空间不会置 0
 3、如果 ptr 为 NULL,相当于 malloc(size)
 4、如果 ptr 不为 NULL 并且 size == 0,相当于 free(ptr)
 5、ptr 不需要释放,如果分配成功,只释放重新分配空间的首地址

    
 
 

您可能感兴趣的文章:

  • sql语言中delete删除命令语句详解
  • 汇编语言rep movsd 的使用详解
  • 基于C语言fflush()函数的使用详解
  • c语言中位字段与结构联合的组合使用详解
  • 深入c语言continue和break的区别详解
  • 请问有什么工具可以将C语言的注释生成文档吗? iis7站长之家
  • 基于C语言中段错误的问题详解
  • C语言循环队列的表示与实现实例详解
  • 关于c语言的一个小bug详解
  • C语言单链队列的表示与实现实例详解
  • Android笔记之:深入为从右向左语言定义复杂字串的详解
  • C语言中判断int,long型等变量是否赋值的方法详解
  • 关于C语言指针赋值的问题详解
  • C语言高斯消元法的使用详解
  • C语言栈的表示与实现实例详解
  • 深入C语言内存区域分配(进程的各个段)详解
  • c语言中 基于随机函数的使用详解
  • 深入分析C语言中结构体指针的定义与引用详解
  • C语言位图算法详解
  • c语言stack(栈)和heap(堆)的使用详解
  • PDF生成标记语言 PDML
  • C语言文档生成工具 GTK-Doc
  • 请问有什么工具可以将C语言的注释生成文档吗?
  • c语言生成随机uuid编码示例
  • c语言生成随机数的方法(获得一组不同的随机数)
  • 关于editplus的使用,编译完生成.class后,我又编写了html来执行applet,将其保存,如何经ie解释打开(直接在editplus上操作)不是显示html语言呀
  • 怎么通过C语言自动生成MAC地址
  • JSP中如何动态生成SQL语言?
  • 如何用C语言生成简单格式的xml
  • 纯C语言:贪心Prim算法生成树问题源码分享
  • 最小生成树算法C语言代码实例
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 在Linux上用C语言编写的函数里面申请了一块内存,并且返回这块内存,最终它需要释放吗?
  • C语言 结构体动态数组内存释放问题
  • C语言中多维数组的内存分配和释放(malloc与free)的方法
  • 在Linux上用C语言作了一个程序,程序中申请(malloc)了很大的内存,但是没free,当程序运行结束后,内存是否自动释放?
  • 2013年7月和2013年8月编程语言排行榜
  • 如何在GTK2.0下实现国际化(语言选择根据自己设置的语言,不用系统的语言)
  • 2017 年热门编程语言排行榜出炉,你的语言上榜没?
  • C语言中有指针,因此C语言可以创建链表,那么Java语言没有指针,那Java是否可以创建链表呢?
  • 苹果OS X和IOS下最新编程语言swift介绍
  • 求助,在linux下,c语言和汇编语言的接口是什么?
  • c语言判断某一年是否为闰年的各种实现程序代码
  • C语言中间语言 CIL
  • PHP编程语言介绍及安装测试方法
  • 最近学JSP,苦于HTML语言和JAVA语言太差,请教推荐几本书,thanks.
  • Linux下C语言strstr()查找子字符串位置函数详细介绍(strstr原型、实现及用法)
  • 动态编程语言 LIME编程语言
  • c语言实现MD5算法完整代码示例
  • C语言如何改变当前语言环境
  • 以NetBeans IDE为例介绍如何使用XML中Schema语言
  • 如何在VIM中使汇编语言和C语言自动缩进?
  • c语言基于libpcap实现一个抓包程序过程
  • 我安装的linux时默认语言选择的是中文,又乱码,怎么可以解决?怎么更改默认语言成英文?
  • HTML超文本标记语言教程及实例
  • Redhat9安装时语言只选择了中文,现在还能再增加其它语言的支持吗?如英文
  • MD5算法的C语言实现
  • 请问哪里有ubuntu 9.0版本的中文语言包和KDE的中文语言包下载,我用Google搜索了很多地方都没有!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3