我不是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
是一个tribute
的pointer
所以你需要提供myvictor
address
所以你的代码的最后一行错误是正确的
在最后一行更改为: myGame.victor=&myVictor
游戏结构的胜利者是指针。 所以你应该分配myVictor的地址。 像这样的东西:
需要了解更多c/c++开发分享如何在C中的Struct变量中访问指针成员?,也可以关注C/ C++技术分享栏目—计算机技术网(www.ctvol.com)!
myGame.victor = &myVictor; printf("Points is: %d",myGame.victor->points);
以上就是c/c++开发分享如何在C中的Struct变量中访问指针成员?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/979131.html