繁体   English   中英

如何在C中的Struct变量中访问指针成员?

[英]How to access pointer members in a Struct variable in C?

我不是C的新手,但我发现了一个我必须处理的问题。 如何访问作为指向另一个结构的指针的结构的成员?

恩。

typdef struct {
   int points;
} tribute;

typedef struct {
    int year;
    tribute *victor;
} game;

int main(){
  tribute myVictor;
  myVictor.points = 10;  

  game myGame;
  myGame.year = 1994; // Runs fine
  myGame.victor = myVictor; // I want to point the victor member of the game struct to 
                            //myVictor object... But it gives me an error
} 

我怎么能纠正这个? 我知道我应该将myGame变量作为指针...但我问我是否可以在普通的struct变量中执行此操作。

尝试:

myGame.victor = &myVictor;

这个问题与结构本身无关。 您只是尝试将数据变量复制到指针中,该指针无效。 而不是myGame.victor = myVictor; ,让myGame.victor指向myVictor的地址

myGame.victor = &myVictor;

如果要指向胜利者成员,则应传递胜利者指针(地址,记忆方向......)。

所以,它应该是:

myGame.victor = &myVictor;
typdef struct {
   int points;
} tribute;

typedef struct {
    int year;
    tribute *victor;
} game;

int main(){
  tribute myVictor;
  myVictor.points = 10;  

  game myGame;
  myGame.year = 1994; 
  myGame.victor = &myVictor; 
} 

这里victor是一个tributepointer所以你需要提供myvictor address所以你的代码最后一行的错误是正确的

在最后一行改为: myGame.victor=&myVictor

游戏结构的胜利者是指针。 所以你应该分配myVictor的地址。 像这样的东西:

myGame.victor = &myVictor;
printf("Points is: %d",myGame.victor->points);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM