【发布时间】:2019-01-26 21:43:53
【问题描述】:
我有一个这样的结构:
struct my_struct {
struct_a a;
struct_b b;
};
我正在尝试打印my_struct 类型的变量的地址以及它的字段地址a 和b,它们也是结构:
void some_function(my_struct *my) {
//....
printf("my addr: %p - a addr: %p - b addr: %p", my, (void *) &my->a,
(void *) &my->b);
}
int main() {
my_struct my; //my is initialized in a function...
//then, it is passed to some_function(...) bellow...
printf("my addr: %p - a addr: %p - b addr: %p", my, (void *) &my->a,
(void *) &my->b);
some_function(&my);
return 0;
}
我收到以下错误:
错误:'->' 的类型参数无效(有 'struct my_struct')
我的理解有什么问题?
【问题讨论】:
-
my不是指针,因此您可以使用.而不是->访问它的元素。 -
@ChristianGibbons
my是一个指针... -
哦,等等。有两个
mys。 -
@DaltonCézane 你能提供一个minimal reproducible example吗?我稍微调整了代码以便能够编译它,但我无法重现:coliru.stacked-crooked.com/a/be082558cb10e356
-
并且还立即提供 MCVE。 :)