malloc函数用法

malloc函数用法1、函数声明void*malloc(intsize);说明:malloc向系统申请分配size字节的内存空间,返回类型为void*类型。2、使用int*p;p=(int*)malloc(sizeof(int));注意:(1)因为malloc返回的是不确定类型的指针,所以返回之前必须经过类型强制转换,否则编译报错,如:“不能将void*赋值给int*变量

大家好,又见面了,我是你们的朋友全栈君。

1、函数声明

void *malloc(int size);

说明:malloc向系统申请分配size字节的内存空间,返回类型为void*类型。

2、使用

int *p;

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

注意:

(1)因为malloc返回的是不确定类型的指针,所以返回之前必须经过类型强制转换,否则编译报错,如:“ 不能将void*赋值给int*变量 ”。

(2)malloc只管分配内存,并不会初始化,其内存空间中的值可能是随机的。如果分配的这块空间原来没有被使用过,那么其中每个值都可能是0。相反,空间里面可能遗留各种各样的值。

(3)实参为需要分配的字节大小,如果malloc(1),那么系统只分配了1个字节的内存空间,这时注意,如果在这块空间中存放一个int值,由于int类型占4个字节,那么还有3个字节未分配空间,系统就会在已经分配的那1个字节的基础上,依次向后分配3个字节空间,而这就占有了“别人”的3个字节空间,“别人”原有的值就被清空了。

(4)分配的空间不再使用时,要用free函数释放这块内存空间。

3、示例

分配100个int类型的空间:

int *p;

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

4、malloc函数工作机制

(1)malloc函数被调用时,它会沿空闲链表寻找一个可以满足需求的内存块,然后把所需大小的内存块分配给用户,剩下的返回到链表上。free函数被调用时,它将释放的内存块连接到空闲链表上。

(2)到最后,空闲链表会被分成很多小的内存片段,当用户申请一块较大的内存空间时,空闲链表上可能没有满足需求的内存块了,这时,malloc函数请求延时,并将空闲链表内的小内存片段整理成大的内存块,最终返回。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/132411.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • dmesg的使用「建议收藏」

    dmesg的使用「建议收藏」1.dmesg命令–>用来显示开机信息,kernel会将开机信息存储在ringbuffer中。开机时来不及查看信息,可利用dmesg来查看。开机信息亦保存在/var/log/dmesg2.【dmesg命令作用】:有时候屏幕上的启动信息一闪而过,我们无法查看到具体信息,又或者服务器在电信机房,更看不到开机启动信息。这时候linux提供了dmesg这条命令。在命令行下…

    2025年7月8日
    5
  • Servlet账户登陆优化

    Servlet账户登陆优化

    2021年6月19日
    104
  • mysql有关运维的面试题_mysql数据库运维面试题「建议收藏」

    mysql有关运维的面试题_mysql数据库运维面试题「建议收藏」1.登陆数据库(1)单实例mysql-uroot-poldboy(2)多实例mysql-uroot-poldboy-S/data/3306/mysql.sock2.查看数据库版本及当前登录用户是什么mysql>selectversion();查看版本+————+|version()|+————+|5.5.22-log|+——-…

    2022年6月8日
    91
  • 前端UI框架整理

    前端UI框架整理1 TDesign 腾讯最近刚刚公开的一套 UI 框架 个人感觉不错 下面是官网介绍 TDesign 是什么 TDesign 是腾讯各业务团队在服务业务过程中沉淀的一套企业级设计体系 TDesign 具有统一的设计价值观 一致的设计语言和视觉风格 帮助用户形成连续 统一的体验认知 在此基础上 TDesign 提供了开箱即用的 UI 组件库 设计指南和相关设计资产 以优雅高效的方式将设计和研发从重复劳动中解放出来 同时方便大家在 TDesign 的基础上扩展 更好的的贴近业务需求 为什么会有 TDe

    2025年9月23日
    3
  • 计算机中的幂等性「建议收藏」

    [原创链接:http://www.smithfox.com/?e=16转载请保留此声明,谢谢]绝大部分网络上对幂等性的解释类似于:”幂等性是指重复使用同样的参数调用同一方法时总能获得同样的结果。比如对同一资源的GET请求访问结果都是一样的。”我认为这种解释是非常错误的,幂等性强调的是外界通过接口对系统内部的影响,外界怎么看系统和幂等性没有关系.就上面这种解释,

    2022年4月16日
    42
  • 电力电子技术 学习总结1

    第二章PPT91以前电力电子器件(PowerElectronicDevice)—可直接用于处理电能的主电路中,实现电能的变换或控制的电子器件。主电路(MainPowerCircuit)—电力电子设备或系统中,直接完成电能变换或控制的电路。广义上电力电子器件可分为电真空器件和半导体器件两类。自20世纪50年代以来,真空管(VacuumValve)仅在频率很高(如微波,数GHz)的大功率高频电源中还在使用,而在大多数电能变换领域,电力半导体器件已取代了汞弧整流器、闸流管等电真空器件

    2022年4月14日
    93

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号