做网站的图片用什么格式,网站开发免费维护一年,百度网站推广服务商,wordpress twenty eleven search本文档主要记录嵌入式C语言在子函数中应用malloc函数的方式#xff0c;在实际项目中内存管理特别重要 一般在主函数中#xff08;main#xff09;使用malloc函数#xff0c;然后在通过free函数进行释放内存#xff0c;但有时候如果必须在子函数长调用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释放内存的方法