typedef struct
{
int i;
}one;
typedef struct
{
one two;
}three;
void writing_a_value(three *);
int main()
{
three four;
writing_a_value(&four);
printf("%d",four.two.i);
}
void writing_a_value(three *four)
{
four->(two->i)=1; /* problem here */
}
我尝试过像(four->(two->i))=1
这样的大括号,但它仍然不起作用。我必须传递指针,因为我必须将数据输入嵌套结构。
error=expected ( bracket
,在注释行中。
如何使用指针传递结构并在嵌套结构中输入数据?
答案 0 :(得分:5)
两个不是引用,因此尝试取消引用它会导致错误。相反,你应该只取消引用四个。
void writing_a_value(three *four)
{
four->two.i=1; /*no problem here */
//(*four).two.i=1 would accomplish the same thing
}