malloc/free 的使用要点

2023-05-16

函数malloc的原型如下:

         void * malloc(size_t size);

用malloc申请一块长度为length的整数类型的内存,程序如下:

  int   *p = (int *)malloc(sizeof(int) * length);

我们应当把注意力集中在两个要素上:“类型转化”和“sizeof”。

        malloc 返回值类型是void *,所以在调用malloc时要显示ii地进行类型转换,将void * 转换成所需要的指针类型。

        malloc 函数本身并不识别要申请的内存是什么类型,它只关心内存的总字节数。

 

函数free 的原型如下:

  void free( void * memblock );

  为什么free 函数不像malloc 函数那样复杂呢?这是因为指针p的类型以及它所指的内存的容量事先都是知道的,语句free( p ) 能正确的释放内存。如果p 是NULL指针,那么free 对p 无论操作多少次都不会出问题。如果p 不是NULL指针,那么free 对p 连续操作两次就会导致程序错误。

转载于:https://www.cnblogs.com/xumiao1314/p/7252502.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

malloc/free 的使用要点 的相关文章

随机推荐

  • C++早就过时了?大部分写工程不用C++,学习这个语言就为了竞赛?

    其实腾讯对外发布的 腾讯研发大数据报告 已经披露了2020年C 43 43 仍然是腾讯最受欢迎的语言 在游戏和工具中仍然是主流 xff1a 大部分游戏引擎 如Unreal Source 及中间件 如Havok FMOD xff0c 虽然有些
  • 输出所有request参数

    private void printAllParam HttpServletRequest request Enumeration paramNames 61 request getParameterNames while paramNam
  • java反转字节读取小端(Little Endian)数据

    用c 的BinaryWriter的Write方法向文件里写int时 字节序是小端 即Little Endian 用java的DataInputStream的readInt方法 往往不能读取正确值 可以用Integer的reverseByte
  • C/C++ 类库 开发库 资料

    原文 xff1a C C 43 43 函数库 类库 作者 xff1a Breaker lt breaker zy AT gmail gt C C 43 43 开发库 C C 43 43 Development Library 这里收集一些著
  • java 预申请磁盘空间处理大文件

    熟悉电驴和bt的你可能经常看到这些软件可以在下载文件之初就先在硬盘上建立了一个将要下载的那个文件 xff0c 但其实里面的内容是空的 xff0c 只是预先申请了磁盘空间 xff0c 这样做的好处是可以尽可能的减少磁盘碎片 xff0c 同时可
  • 看我把firefox改造成chrome的样子

    一直很喜欢chrome的主题 xff0c 美观 xff0c 而且足够简介实用 xff0c 标题栏和菜单栏 xff0c 状态栏都干掉了 xff0c 节省了很大的空间 xff0c 尤其是对我这种小屏幕的电脑来说太棒了 昨天把firefox折腾成
  • 关于CMD(win7里)的字体

    先别骂偶 xff0c 但偶不得不首先声明特别挑剔字体是偶最大的洁癖 对windows里的命令提示符也不例外 今天不小心调了一下vim的窗口大小 xff0c 不知怎么搞的越弄越糟糕 xff0c 把cmd里原来的字体都高没有了 xff0c 只剩
  • 我用django的一个感受

    我是个python业余者 xff0c 没有做过python的项目 xff0c 最近自学python xff0c 不过遇到些困惑 xff0c 希望大大们指点 早有听说python是个很好的语言 xff0c 又早有听说python做web最好的
  • new 、 delete 、 malloc 、 free 关系

    1 new delete malloc free 关系 delete 会调用对象的析构函数 和 new 对应 free 只会释放内存 xff0c new 调用构造函数 malloc 与 free 是 C 43 43 C 语言的标准库函数 x
  • 测试Java反射效率

    测试分为3个方面 xff1a 1 实例化效率 xff1b 2 方法调用效率 xff1b 3 成员变量GET调用效率 xff1b 4 成员变量SET调用 测试环境 xff1a Windows 7 Sun Java 1 6 先写好备测试用的类
  • google reader给我带了了什么

    题记 xff1a 这篇文章是自己的有感而发 xff0c 更是写给一个特别的朋友 xff0c 希望google reader xff08 以下简称GR xff09 带给我的东西也同样可以传递给你 xff0c 传递给每个人 引文 xff1a 已
  • 终于尘埃落定,准备踏上新的旅程

    经过一个月的纠结 xff0c 等待 xff0c 谈判 xff0c 奔波 xff0c 终于今天一切都定下来了 xff0c 即将离开 xff0c 有太多太多已经告别了的和即将告别的 xff0c 有些来不及 xff0c 有些舍不得 xff0c 但
  • shortcuts in Firefox on MacOSX

    以下是firefox菜单里看不到的 xff0c 看得到就自己看看吧 xff0c 不在这里总结了 home page gt opt 43 fn 43 left 因为fn 43 left gt home left tab gt 1 ctr 43
  • 火狐扩展开发:在第三方页面插入JS脚本

    第一步 xff0c 首先在xul文件内引入执行插入脚本的JS文件 xff0c 例如 xff1a 第二步 xff0c 向第三方插入脚本的代码 xff1a var ffCreate 61 init function var appcontent
  • 多式样ProgressBar

    多式样ProgressBar 普通圆形ProgressBar 该类型进度条也就是一个表示运转的过程 xff0c 例如发送短信 xff0c 连接网络等等 xff0c 表示一个过程正在执行中 一般只要在XML布局中定义就可以了 lt progr
  • 修改Linux系統的默認連接數

    1 修改用戶進程可打開文件數限制 在Linux平台上 xff0c 無論編寫客戶端程序還是服務端程序 xff0c 在進行高並發TCP連接處理時 xff0c 最高的並發數量都要受到系統對用戶單一進程同時可打開文件數量的限制 這是因為系統為每個T
  • 详解大端模式和小端模式

    详解大端模式和小端模式 一 大端模式和小端模式的起源 关于大端小端名词的由来 xff0c 有一个有趣的故事 xff0c 来自于Jonathan Swift的 格利佛游记 xff1a Lilliput和Blefuscu这两个强国在过去的36个
  • 字符串连接(c语言实现)

    起因 今天九度刷题的时候 xff0c 发现一个不调用任何c的库函数实现字符串拼接的代码很多人写的过于复杂 xff0c 链表都用上了 xff0c 真的不至于 xff0c 只要知道字符串的最后截止符是 39 0 39 题目描述 xff1a 不借
  • STL里list、vector、queue性能差异与疑似内存泄漏问题

    最近在项目中debug退出后 xff0c VS的Output面板会输出大量内存泄漏的信息 经过排查 xff0c 居然发现是使用了std list的原因 xff01 然而通过MSDN上一些前辈的讨论 xff0c 得知List并没有真正导致内存
  • malloc/free 的使用要点

    函数malloc的原型如下 xff1a void malloc size t size 用malloc申请一块长度为length的整数类型的内存 xff0c 程序如下 xff1a int p 61 int malloc sizeof int