gpt4 book ai didi

c - 如何从结构中的结构指针访问数据

转载 作者:太空宇宙 更新时间:2023-11-04 01:45:30 25 4
gpt4 key购买 nike

我正在尝试打印 newBall 的 x 值,但不知道如何访问它。有人可以帮我吗?我在 struct AllBalls 中有一个指向 struct Ball 的指针。我收到一个编译错误,指出 x 不是结构的成员。

    #include <stdlib.h>
#include <stdio.h>


struct Ball {
char id;
double x;
double y;
double Vx;
double Vy;
};

struct AllBalls {
int count;
struct Ball *ballPtr;
};

int main(void)
{
int index = 1;
struct AllBalls list = {0, NULL};
struct Ball newBall;
double x, y, Vx, Vy;
int input;

printf("Enter input: ");
input = scanf("%lf %lf %lf %lf", &x, &y, &Vx, &Vy);
list.count++;
list.ballPtr = &newBall;
newBall.id = 64 + list.count;
newBall.x = x;
newBall.y = y;
newBall.Vx = Vx;
newBall.Vy = Vy;
printf("%lf", *(list.ballPtr).x);
}

最佳答案

问题出在接近尾声的这一行:

 printf("%lf", *(list.ballPtr).x);

成员选择运算符 . 的优先级高于取消引用运算符 *。所以编译器认为您正在尝试将指针作为结构进行访问。您可以通过移动括号来解决此问题:

 printf("%lf", (*list.ballPtr).x);

或者使用指向成员运算符的指针 -> 代替:

 printf("%lf", list.ballPtr->x);

关于c - 如何从结构中的结构指针访问数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54565274/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com