【问题标题】: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;
}

为什么这段代码会出现分段错误?

【问题讨论】:

标签: c struct segmentation-fault


【解决方案1】:

问题不在于将参数传递给funcex 是指向 num 结构的未初始化指针。您可以显式分配它(只是不要忘记在完成后释放它):

num* ex = malloc(sizeof(num));

【讨论】:

  • 或者,只需执行num ex[1]。或num ex; func(&amp;ex.i);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-03
  • 2012-10-06
  • 1970-01-01
  • 1970-01-01
  • 2019-09-27
相关资源
最近更新 更多