欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

主函数和子函数的传值传址例子

发布时间:2023/12/10 编程问答 43 豆豆
生活随笔 收集整理的这篇文章主要介绍了 主函数和子函数的传值传址例子 小编觉得挺不错的,现在分享给大家,帮大家做个参考.


#include<string.h>
#include<stdlib.h>
#include<stdio.h>
typedef unsigned char Uint8;
 
void *Test_Function(Uint8 **add)//返回堆空间,需要用二级指针
{

Uint8 *devInit=(Uint8 *)malloc(20*sizeof(Uint8));
memcpy(devInit,"malloc address",sizeof(devInit)*20);
*add=devInit;

return devInit;//通过函数返回值的指针,将子函数申请的堆空间地址返回
}
Test_Function_1(Uint8 **add)//栈空间不能返回,只在本函数有效
{
 Uint8   devInit[30]={"Display"};
 *add=devInit;
// printf("devInit %s\n",devInit);
}
Test_Function_2(Uint8 *add)//k改变所传地址的值
{
 Uint8   devInit[20]={"Display"};
 memcpy(add,devInit,sizeof(devInit));
 return ;
 
}
void main()
{
 Uint8  *devPara;//设备参数
 Test_Function(&devPara);
 printf("Test_Function_%s\n",devPara);//Test_Function_malloc address

  Test_Function_1(&devPara);
  printf("Test_Function_1_%s\n",devPara);//Test_Function_1_
 
  Uint8  devPara_suzhu[20];//设备参数

  Test_Function_2(devPara_suzhu);
  printf("Test_Function_2_%s\n",devPara_suzhu);//Test_Function_2_Display
 
    Uint8   *devPara_test;
 devPara_test=(Uint8 *)Test_Function(&devPara);//通过函数返回值的指针,将子函数申请的堆空间地址返回
 printf("devPara_test %s\n",devPara_test);//devPara_test malloc address
 
    Uint8  devPara_suzhu1[20];//设备参数
 memcpy(devPara_suzhu1,devPara_test,sizeof(devPara_suzhu1));
 printf("devPara_suzhu1 %s\n",devPara_suzhu1);//devPara_suzhu1 malloc address
 
 

}

 

总结

以上是生活随笔为你收集整理的主函数和子函数的传值传址例子的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。