使用指针将嵌套结构传递给函数

时间:2014-10-07 16:17:32

标签: c data-structures structure

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,在注释行中。

如何使用指针传递结构并在嵌套结构中输入数据?

1 个答案:

答案 0 :(得分:5)

两个不是引用,因此尝试取消引用它会导致错误。相反,你应该只取消引用四个。

void writing_a_value(three *four)
{
        four->two.i=1; /*no problem here */
        //(*four).two.i=1 would accomplish the same thing
}