将指针结构访问到结构中

时间:2014-10-28 22:07:23

标签: c struct

我认为这是一个简单的问题,但我无法理解。我有以下代码:

int main(int argv,char **argc){
  typedef struct tag{
    int c;
    float x;
    struct tag *s_ptr;
  } utag;

  utag mytag;

  mytag.(&s_ptr->c)=10;
  printf("%d",mytag.s_ptr->c);
  return 0;
}

我尝试访问嵌套结构的变量。我做错了什么?

1 个答案:

答案 0 :(得分:1)

尝试

  

(mytag.s_ptr) - > c = 10;

s_ptr是一个指针,但声明了utag(它是一个结构,而不是指向结构的指针)。 “mytag.s_ptr”会指向另一个“标记”结构的指针,“ - >”取消引用指针,最后的“c”标识所需结构中的项目。

但是,既然你从未将s_ptr设置为任何代码,那么你的代码会崩溃,你需要将mytag.s_ptr初始化为有效的标记结构。