如何将结构成员作为引用传递给函数?
Posted
技术标签:
【中文标题】如何将结构成员作为引用传递给函数?【英文标题】:How to pass a struct member as a reference in a function? 【发布时间】:2021-03-08 18:11:27 【问题描述】:#include<stdio.h>
typedef struct int i; float f; num;
void func (int *);
int main()
num *ex; func(&ex->i);
printf("Number = %d",ex->i);
void func(int *num)
*num = 4;
为什么这段代码会出现分段错误?
【问题讨论】:
这能回答你的问题吗? How does dynamically allocating a struct in C work? 【参考方案1】:问题不在于将参数传递给func
。 ex
是指向 num
结构的未初始化指针。您可以显式分配它(只是不要忘记在完成后释放它):
num* ex = malloc(sizeof(num));
【讨论】:
或者,只需执行num ex[1]
。或num ex; func(&ex.i);
以上是关于如何将结构成员作为引用传递给函数?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 void* 的引用从 C++/CLI 传递给本机 C 函数