我认为这是一个简单的问题,但我无法理解。我有以下代码:
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;
}
我尝试访问嵌套结构的变量。我做错了什么?
答案 0 :(得分:1)
尝试
(mytag.s_ptr) - > c = 10;
s_ptr是一个指针,但声明了utag(它是一个结构,而不是指向结构的指针)。 “mytag.s_ptr”会指向另一个“标记”结构的指针,“ - >”取消引用指针,最后的“c”标识所需结构中的项目。
但是,既然你从未将s_ptr设置为任何代码,那么你的代码会崩溃,你需要将mytag.s_ptr初始化为有效的标记结构。