【嵌入式软件C编程】主函数free子函数malloc地址的两种方式以及注意事项

这篇具有很好参考价值的文章主要介绍了【嵌入式软件C编程】主函数free子函数malloc地址的两种方式以及注意事项。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文档主要记录嵌入式C语言在子函数中应用malloc函数的方式,在实际项目中内存管理特别重要

一般在主函数中(main)使用malloc函数,然后在通过free函数进行释放内存,但有时候如果必须在子函数长调用malloc函数该怎样进行内存释放呢?

📋 个人简介

  • 💖 作者简介:大家好,我是喜欢记录零碎知识点的小菜鸟。😎
  • 📝 个人主页:欢迎访问我的 Ethernet_Comm 博客主页🔥
  • 🎉 支持我:点赞👍+收藏⭐️+留言📝
    -📣 系列专栏:嵌入式C编程🍁
  • 💬格言:写文档啊不是写文章,重要的还是直白!🔥
  • 方式1:通过函数返回值
  • 方式2:通过二级指针传参

1. 代码展示

直接展示测试代码:

/*无参数,函数返回 malloc 的地址 */
int * test_malloc_ins(){
    int *fun_val  = (int)malloc(sizeof(int));
    printf("test_malloc_ins fun_val addr  = 0x%08x \r\n",fun_val);
    return fun_val;
}

/*无返回值,函数通过二级指针传递地址*/
void test_malloc_ins_2(int **pointer){
    int *fun_val  = (int)malloc(sizeof(int));
    printf("test_malloc_ins_2 fun_val addr  = 0x%08x \r\n",fun_val);
    * pointer = fun_val;
}

int main()
{
	int *main_test;
    printf("============测试1,函数返回值=============== \r\n");
    main_test = test_malloc_ins();
    printf(" main_test addr  = 0x%08x \r\n",main_test);
    printf("**** free ***** \r\n");
    free(main_test);
    main_test = NULL;
    printf("after free main main_test addr  = 0x%08x \r\n",main_test);

    printf("\r\n");
    printf("\r\n");
    printf("\r\n");

    printf("============测试2,函数不带返回值:二级指针法=============== \r\n");
    int *p = NULL;
    test_malloc_ins_2(&p);
    printf("*p  = 0x%08x \r\n",p);
    free(p);
    p = NULL;
    printf("after free  ,*p  = 0x%08x \r\n",p);
}

2. 实验结果

【嵌入式软件C编程】主函数free子函数malloc地址的两种方式以及注意事项,嵌入式,c语言,开发语言,嵌入式C

3. 原理介绍

C/C++中在子函数中使用malloc分配内存和free释放内存的方法文章来源地址https://www.toymoban.com/news/detail-699264.html

到了这里,关于【嵌入式软件C编程】主函数free子函数malloc地址的两种方式以及注意事项的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 嵌入式软件调试与验证4自动重现和分析嵌入式软件中的Bug

    嵌入式软件的重要性逐年增加。ISO26262标准的最高安全级别要求十个9小时内无故障运行。然而,历史上的一些项目表明,即使进行了全面的测试,多年来仍有许多错误未被发现。航天飞机的控制计算机仅有50万行源代码,却经过了长达8年的测试,每行源代码耗资1000美元,即总

    2024年02月08日
    浏览(39)
  • 嵌入式培训机构四个月实训课程笔记(完整版)-C++和QT编程第四天-C++动态联编和虚函数练习(物联技术666)

    链接:https://pan.baidu.com/s/1KayCjn6Vem9YFucS8lpCFg?pwd=1688 提取码:1688 设计一个动物类:动物有一个name成员,另外有三个函数sleep(), eat(), play(); 从动物这个类派生出狗类和猫类,在对应的三个函数中实现输出如下信息的功能: dog(or cat) (name) is sleepping...! dog(or cat) (name) is eatting...! dog

    2024年01月18日
    浏览(29)
  • 嵌入式软件架构

    总目录链接== AutoSAR入门和实战系列总目录 总目录链接== AutoSAR BSW高阶配置系列总目录 嵌入式软件架构设计意图通常伴随着基于个人经验的假设。软件开发人员可能会从资源受限的基于微控制器的系统的角度来看待架构设计。系统人员可能会从应用处理器的角度考虑架构。如

    2023年04月10日
    浏览(26)
  • 嵌入式软件学习路线(入门)

    大家不要只收藏不关注啊,哪怕点个赞都行哇。😭 刚工作两年,推荐的学习路线只做一家之言,如果有那里有人觉得不合适,可以根据自身的需求寻找更合适的路线,大学的时候学习过单片机,对于单片机也算是入门级,能做一些毕业设计级别的东西,能够应付大学所需。

    2023年04月15日
    浏览(30)
  • 嵌入式硬件和软件哪个好?

    嵌入式硬件和软件哪个好? 嵌入式软硬件工程师哪个更有前途呢?一起来看看。 嵌入式是分为软硬件工程师的,首先我们先来看看嵌入式硬件工程师吧! 嵌入式硬件开发工程师主要编写嵌入式系统硬件总体方案和详细方案,要求理解嵌入式系统架构,有一定的C语言基础,熟悉

    2024年02月04日
    浏览(38)
  • 嵌入式软件常用工具概览

    “工欲善其事,必先利其器”,选择高质量并适合自己工具可以提高效率,这里介绍一下一些嵌入式软件开发过程中常用工具。 VSCode :Visual Studio Code 出自微软的代码编辑器,需要的功能可以通过安装插件获得,插件非常丰富。相对于VS更轻量灵活、适合嵌入式开发场景。

    2024年02月11日
    浏览(29)
  • 嵌入式软件学习--linux(1)

     echo $PATH   查看环境变量 。若在,可执行 ;若不在,1.将当前路径添加到环境变量 2.将文件移动到环境变量的路径中         sudu gedit /etc/environment          PATH=\\\"/usr/local/sbin/:/usr/local/sbin/: /home/ccc \\\"         重启系统或重新登陆         vim ~/.bashrc            

    2024年04月29日
    浏览(32)
  • 掌握嵌入式Linux编程1开始

    我们先对嵌入式Linux做一个高层次的了解,看看它为什么受欢迎,开放源码许可证有什么意义,以及你需要什么样的硬件来运行Linux。 1999年左右,Linux首次成为嵌入式设备的可行的选择。那是在Axis (https://www.axis.com)发布他们的第一台Linux驱动的网络摄像机和TiVo (https://business.

    2024年02月07日
    浏览(43)
  • 掌握嵌入式Linux编程0简介

    多年来,Linux一直是嵌入式计算的主流。然而,涵盖这一主题的书籍却少之又少:本书旨在填补这一空白。术语 \\\"嵌入式Linux \\\"没有很好的定义,可以应用于从恒温器到Wi-Fi路由器到工业控制单元等各种设备内部的操作系统。然而,它们都是建立在相同的基本开源软件上。这些就

    2024年02月07日
    浏览(68)
  • 嵌入式软件自动化测试介绍

    什么是嵌入式测试 嵌入式软件测试的概念似乎没那么大众,很多人从字面上理解,可能会以为这是个硬件测试,那么嵌入式测试实际上是什么呢? 根据IEEE(国际电机工程师协会)的定义,嵌入式系统是“控制、监视或者辅助装置、机器和设备运行的装置的简称”。而嵌入式

    2024年02月02日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包