我面临一个错误:请求成员数据不是结构或联合。我将结构receiver_data
中结构的地址传递global_vals
给另一个文件中的函数。
该init_func
函数接收地址作为指针。我使用了箭头运算符,因为它是一个指针,但我似乎无法访问该结构。两个内存地址&val.receiver_data
都*ptr
相同,所以我不太确定哪里出了问题
如果有人能指出我的错误,将不胜感激。
这些组件被拆分为具有以下结构的各种源/头文件。
- 主程序
- func_init.c
- 数据类型.c
主程序
global_vals val;
void main(void)
{
val.receiver_data.data = 10;
init_func(&val.receiver_data);
}
func_init.c
void init_func(int *ptr_data)
{
printf("%d\n", ptr_data->data);
}
数据类型.h
typedef struct Receiver {
int data;
} Receiver;
typedef struct {
Receiver receiver_data;
// truncated
} global_vals;