【嵌入式软件C编程】主函数free子函数malloc地址的两种方式以及注意事项
本文档主要记录嵌入式C语言在子函数中应用malloc函数的方式,在实际项目中内存管理特别重要
一般在主函数中(main)使用malloc函数,然后在通过free函数进行释放内存,但有时候如果必须在子函数长调用malloc函数该怎样进行内存释放呢?
📋 个人简介
- 💖 作者简介:大家好,我是喜欢记录零碎知识点的小菜鸟。😎
- 📝 个人主页:欢迎访问我的 Ethernet_Comm 博客主页🔥
- 🎉 支持我:点赞👍+收藏⭐️+留言📝
-📣 系列专栏:嵌入式C编程🍁- 💬格言:写文档啊不是写文章,重要的还是直白!🔥
- 方式1:通过函数返回值
- 方式2:通过二级指针传参
【嵌入式软件C编程】主函数free子函数malloc地址的两种方式以及注意事项
- 1. 代码展示
- 2. 实验结果
- 3. 原理介绍
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. 实验结果

3. 原理介绍
C/C++中在子函数中使用malloc分配内存和free释放内存的方法
相关文章:
【嵌入式软件C编程】主函数free子函数malloc地址的两种方式以及注意事项
本文档主要记录嵌入式C语言在子函数中应用malloc函数的方式,在实际项目中内存管理特别重要 一般在主函数中(main)使用malloc函数,然后在通过free函数进行释放内存,但有时候如果必须在子函数长调用malloc函数该怎样进行…...
金融工程学学习笔记第一章
第一章 金融工程概述 什么是金融工程 金融工程的含义 金融工程: 金融工程:一门融现代金融学、数理和工程方法与信息技术与一体的新兴交叉型学科。 工程是指以某种设想的目标为依据,应用有关科学知识和技术手段,通过有组织的一…...
CentOS 7 编译ZooKeeper C客户端
简介 本文主要讲解:Zookeeper C客户端库在Centos 7上的编译,使用的Zookeeper版本为3.4.13。 工具安装 安装ant 和cppunit-devel工具: [rootlocalhost source_code]# yum install -y cppunit-devel 已加载插件:fastestmirror L…...
【2023年数学建模国赛】A题解题思路
2023年数学建模国赛A题解题思路 问题1: 要计算定日镜场的年平均光学效率和年平均输出热功率,以及单位镜面面积年平均输出热功率,我们可以按照以下步骤进行: 遍历所有定日镜的位置,根据给定的定日镜尺寸和安装高度&am…...
人们对区块链的认识开始变得深入和完善,另一条新路径开始衍生
当区块链行业的发展进入到深水区,特别是当有关区块链的狂热与躁动开始退场,仅仅只是主打区块链的概念,而没有找到区块链与现实商业联通的方式和方法,依然成为困扰区块链发展的一大症结。 事实上,从区块链被人们认识…...
关于Comparable、Comparator接口返回值决定顺序的问题
Comparable和Comparator接口都是实现集合中元素的比较、排序的,下面先简单介绍下他们的用法。 1. 使用示例 public class Person {private String name;private Integer age;public Person() {}public Person(String name, Integer age) {this.name name;this.ag…...
js 根据键判断值
最原始的写法: 改进后的写法: const DeviceTypeObj {SO2: "SO<sub>2</sub>",CO: "CO",NO: "NO",NO2: "NO<sub>2</sub>",O3: "O<sub>3</sub>", let value Dev…...
堆排序,以及大顶堆构造过程Java实现
import java.util.Arrays;public class Main {public static void main(String[] args) {int a[] new int[] { 1, 1, 23, 456, 0 };// int a初始化方式int bb[] { 1, 2, 3, 4 };// int c[5] {1,2,34,5,6};//错误int d[] new int[6]; // 初始为0// int e[] new int[5]{1,2,…...
【C++】类的封装 ① ( 类和对象 | 面向对象三大特征 - 封装 继承 多态 | 类的封装引入 )
文章目录 一、类和对象1、类和对象概念2、代码示例 - 定义类和对象 二、类的封装1、面向对象三大特征2、类的封装引入 一、类和对象 1、类和对象概念 " 面向对象编程 " 是一种 " 编程范式 " , 可以适用于所有的 高级语言 , C 也包括在内 ; 面向对象编程 基…...
Docker原理详细剖析-Namespace
一、简介 docker容器技术从2013年开始火了以后,2014年左右当时有幸在学校能和学院教授一起做些项目以及学习。其中docker技术在当时来说还算是比较新的技术,国内关于这块的资料以及使用也才刚刚开始,讨论docker技术,算是相对时髦的…...
sql:SQL优化知识点记录(九)
(1)小表驱动大表 对sql调优的分析: 排序优化: 数据库的连接方式,里面的数据尽量这样连接,尽量选择第一个方式,因为两个表的连接一共建立5次连接,第二个建立1000次连接,从…...
【PowerQuery】PowerQuery导入JSON数据
Json数据是目前使用的最为频繁和广泛的一种数据交换格式,JSON的全称为JavaScript Object Notation。Json 主要用于在互联网的消息的数据交换信息传递,他的格式与XML有什么区别呢?为什么不用XML,用Json有啥好处呢?我们接下来讨论下Json相比XML的优势: XML传递的数据过多服…...
bootstrap 主题
颜色值 根据等级 primarysecondarysuccessinfowarningdangerlightdark 根据名字 blackwhiteblueindigopurplepinkredorangeyellowgreentealcyangraygray-darkbrown 好像是self 加的 根据颜色值的转化 var 变量 –bs-**** 比如:–bs-blue,–bs-pri…...
FPGA 学习笔记:Vivado 工程管理技巧
前言 当前使用 Xilinx 的 FPGA,所以需要熟悉 Xilinx FPGA 的 开发利器 Vivado 的工程管理方法 这里初步列举一些实际 Xilinx FPGA 开发基于 Vivado 的项目使用到的工程的管理技巧 代码管理 做过嵌入式软件或者其他软件开发的工程技术人员,都会想到使用代码管理工具,如 SVN 、…...
Java低代码开发:jvs-list(列表引擎)功能(二)字段及样式配置
字段的增减 进入列表页设计器-页表设计界面,点击新增一行、或者删除按钮,可以对字段进行增减操作,如果对于权限的列表页,可以使用批量创建字段的按钮: 字段的批量设置,点击批量添加如下图所示 字段为中文名…...
【Java】线程都有哪几种状态
文章目录 前言传统线程模型(操作系统)中线程状态Java线程中的状态线程的运行流程 前言 首先我们要知道,在传统(操作系统)的线程模型中线程被分为五种状态,在java线程中,线程被分为六种状态。 …...
为什么服务端会有那么多的 TimeWait ?
工作中无论是开发环境还是线上环境,我们都出现过大量的 timewait 状态的连接,例如下面这个例子 服务端简单的开辟一个 web server 监听 9966 端口 客户端进行疯狂的请求服务端 瞬间就可以看到咱们服务端的出现大量的 TIME_WAIT 状态的连接 这个时候&…...
任意文件读取及漏洞复现
文章目录 渗透测试漏洞原理任意文件读取1. 任意文件读取概述1.1 漏洞成因1.2 漏洞危害1.3 漏洞分类1.4 任意文件读取1.4.1 文件读取1.4.2 任意文件读取1.4.3 权限问题 1.5 任意文件下载1.5.1 一般情况1.5.2 PHP实现1.5.3 任意文件下载 2. 任意文件读取攻防2.1 路径过滤2.1.1 过…...
目前的一些关于机器学习的感悟
目前的一些关于机器学习的想法 大家一直都在说深度学习和积极学习,当我在本科的时候,就听到很多关于这方面的东西,但当时自己对于这些东西的概念较为模糊,随着研究生进一步的学习,我想讲一下,到目前我所理…...
salesforce从sandbox部署到生产环境的自定义字段权限没有成功上载
salesforce从sandbox部署到生产环境的自定义字段权限没有成功上载 只将字段名称和类型上载了。 查阅: https://help.salesforce.com/s/articleView?idsf.deploy_special_behavior.htm&type5 显示: 自定义字段 从 API 版本 30.0 开始,…...
Wan2.2-I2V-A14B实战案例:地方政府生成‘乡村振兴’政策解读动画短视频系列
Wan2.2-I2V-A14B实战案例:地方政府生成乡村振兴政策解读动画短视频系列 1. 项目背景与需求分析 近年来,随着数字政务的快速发展,各级地方政府越来越重视利用新媒体技术进行政策宣传。某地方政府计划开展"乡村振兴"系列政策解读工…...
GLM-4.1V-9B-Base效果展示:艺术画作风格+主题+文化元素三重解析
GLM-4.1V-9B-Base效果展示:艺术画作风格主题文化元素三重解析 1. 视觉理解新标杆:GLM-4.1V-9B-Base简介 GLM-4.1V-9B-Base是智谱开源的一款视觉多模态理解模型,专为图像内容识别、场景描述和目标问答任务而设计。不同于普通的图像识别工具&…...
Pixel Aurora Engine快速部署:阿里云ECS轻量服务器一键安装脚本
Pixel Aurora Engine快速部署:阿里云ECS轻量服务器一键安装脚本 1. 像素极光引擎简介 Pixel Aurora(像素极光)是一款基于AI扩散模型的高端绘图工作站,采用独特的复古像素游戏风格界面设计。这款创意引擎能够将文字描述转化为极具…...
从拒稿到录用:我的TOMM投稿实战复盘与经验分享
1. 从TMM拒稿到TOMM录用的心路历程 第一次收到TMM的拒稿邮件时,我正在实验室熬夜改代码。邮件弹出来的那一刻,整个人就像被泼了一盆冷水。那篇论文已经经历了三轮大修,每次都是几十条审稿意见,我们团队前前后后修改了上百个细节。…...
mkcert 命令文档 - 本地 HTTPS 开发证书生成工具详解
1. 命令简介mkcert 是一个用 Go 语言编写的、零配置的本地开发用自签名证书生成工具。它能够自动创建并安装本地证书颁发机构(CA)到系统的信任存储中,并生成受本地信任的开发证书,大幅简化 HTTPS 本地开发环境的搭建过程ÿ…...
DeepSeek-R1-Distill-Qwen-7B优化升级:提升推理速度的技巧
DeepSeek-R1-Distill-Qwen-7B优化升级:提升推理速度的技巧 1. 模型概述 DeepSeek-R1-Distill-Qwen-7B是基于Qwen架构的7B参数蒸馏模型,由DeepSeek团队开发。该模型通过知识蒸馏技术从更大的DeepSeek-R1模型中提取关键知识,在保持较高推理能…...
Phi-3-mini-128k-instruct快速部署:Anaconda环境配置与模型调用详解
Phi-3-mini-128k-instruct快速部署:Anaconda环境配置与模型调用详解 你是不是也遇到过这种情况:看到一个很酷的AI模型,想赶紧试试,结果被各种环境依赖、版本冲突搞得头大?别担心,今天咱们就来搞定Phi-3-mi…...
高效突破:Cursor Pro功能优化与多场景应用指南
高效突破:Cursor Pro功能优化与多场景应用指南 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached your trial requ…...
任天堂Switch大气层系统终极指南:7步完成自定义固件安装与虚拟系统配置
任天堂Switch大气层系统终极指南:7步完成自定义固件安装与虚拟系统配置 【免费下载链接】Atmosphere-stable 大气层整合包系统稳定版 项目地址: https://gitcode.com/gh_mirrors/at/Atmosphere-stable 大气层系统(Atmosphere)是任天堂…...
2026学生免费用AI编程神器全攻略——白嫖不要白不要,大学生快来
好的,上一章刚教你用GitHub武装自己,筑起技术护城河,但光会搬砖(敲命令)还不够,你得学会“开高达”——用AI编程助手把效率拉满。 2026年了,如果还纯靠手打for循环和查API文档,那你…...
