码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • C动态内存分配和管理函数malloc,calloc,free与realloc


    目录

     介绍

    1.void* malloc(size_t size);

    2.void* calloc(size_t num, size_t size);

    3.void* realloc(void* ptr, size_t size);

    4.void free(void* ptr);

    5.代码演示


     介绍

    在 C 语言中,malloc、calloc、realloc 和 free 是用于动态内存分配和管理的标准库函数。它们定义在  头文件中。

    1.void* malloc(size_t size);

    size: 要分配的字节数。

    malloc 函数用于分配指定字节数的内存块,并返回指向该内存块的指针。分配的内存内容是未初始化的。回一个 void* 指针,指向分配的内存块。如果分配失败,返回 NULL。

    2.void* calloc(size_t num, size_t size);

    num: 要分配的对象数量,size: 每个对象的字节数。

    calloc 函数用于分配一块内存,用于存储指定数量的对象,每个对象的大小为指定字节数。分配的内存块会被初始化为零。返回一个 void* 指针,指向分配的内存块。如果分配失败,返回 NULL。

    3.void* realloc(void* ptr, size_t size);

    ptr: 指向已分配内存块的指针,size: 新的内存块大小(以字节为单位)

    realloc 函数用于重新调整已分配内存块的大小。如果需要增加或减少内存块的大小,realloc 可以用来改变内存块的大小,保留原有数据(如果有的话)。返回一个 void* 指针,指向新分配的内存块。如果分配失败,返回 NULL,并且原内存块未被修改。

    4.void free(void* ptr);

    ptr: 指向要释放的内存块的指针。

    free 函数用于释放先前由 malloc、calloc 或 realloc 分配的内存块。释放内存块后,该内存块变为不可用,且无法再次访问无返回值。

    5.代码演示

    1. #include
    2. using namespace std;
    3. int main()
    4. {
    5. int* ssr=(int *)malloc(40);//分配40个字节的空间
    6. int* sr=(int *)calloc(5,sizeof(int));//分配5个int(4个字节)所占空间,并都赋值为0
    7. int* r=(int*)realloc(ssr,30);//修改ssr所指向的空间并修改大小为30个字节,并返回新的内存地址给r
    8. ssr=r;
    9. free(ssr);//释放空间
    10. free(sr);
    11. return 0;
    12. }

  • 相关阅读:
    C++中的外观模式
    移动一个const对象会发生什么?
    基于Faster R-CNN的安全帽目标检测
    【Pake】一行命令把网站打包成桌面APP
    C++红黑树--110203
    mfc入门基础(六)创建模态对话框与非模态对话框
    Android AMS——栈管理基础(九)
    Unity Editor 打包指定资源(AssetBundle)和加载指定资源
    stm32cubemx hal学习记录:PWR 低功耗停止模式
    Python 中的万能之王 Lambda 函数
  • 原文地址:https://blog.csdn.net/song0789/article/details/141196529
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号