
结构体作为函数参数值传递的问题
定义一个结构体变量,结构体变量的地址作为实参传递和定义一个结构体指针,指针地址作为实参传递有何不同,定义结构体指针未分配地址空间就作为参数传递会有什么问题,主调函数的参数...
定义一个结构体变量,结构体变量的地址作为实参传递和定义一个结构体指针,指针地址作为实参传递有何不同,定义结构体指针未分配地址空间就作为参数传递会有什么问题,主调函数的参数为结构体其堆栈方式是怎样的,请举例并以汇编代码详细说明.
展开
展开全部
传结构体地址与传结构体指针二者都可以作为传出参数,因为接受函数必须为其定义一个结构指针来接收,这样在函数内就可以修改结构体,在这点上二者没有区别。
定义结构体指针未分配地址空间就作为参数传递会,如果你想把它作为传出参数的话,
你必须这么写;
void get(struct student **p); //用p来接收
main()
{
struct student *a;
get(&a);
}
这样你也能得到你想要的结果。当然你需要在get()函数中用malloc()为其 动态分配内存空间。
你是想知道接收函数的结构体是如何分配的吗? 在接收函数中理论上他会在它自己的函数栈帧复制一份实参结构体拷贝,如果你传的是结构体本身! 这样你对结构体的修改不会对实参有影响。
定义结构体指针未分配地址空间就作为参数传递会,如果你想把它作为传出参数的话,
你必须这么写;
void get(struct student **p); //用p来接收
main()
{
struct student *a;
get(&a);
}
这样你也能得到你想要的结果。当然你需要在get()函数中用malloc()为其 动态分配内存空间。
你是想知道接收函数的结构体是如何分配的吗? 在接收函数中理论上他会在它自己的函数栈帧复制一份实参结构体拷贝,如果你传的是结构体本身! 这样你对结构体的修改不会对实参有影响。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?

2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
展开全部
楼主要求的是汇编代码说明,坐等高人解答~!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询