如何在新函数中设置Typedef Struct定义的指针值?

时间:2017-09-17 19:50:58

标签: c pointers vector struct typedef

typedef struct Vector2D
{
  float x, y;
} Vector2D;

void Vector2DZero(Vector2D *pResult)
{
  pResult.x = 0;
  pResult.y = 0;
}

在功能Vector2DZero中,我想为名为x的矢量将ypResult的值设置为0,但我不确定如何访问新函数中的变量,尤其是使用指针。 (我很确定我所做的不正确)。

我必须使用上述功能。

我需要使用箭头操作符吗?请帮忙。

2 个答案:

答案 0 :(得分:0)

如果你想使用点

(*pResult).x = 0;
(*pResult).y = 0;

其他地方

pResult -> x = 0;
pResult -> y = 0;

答案 1 :(得分:0)

是的,您确实需要使用箭头操作符,因为我使用 x 执行了以下代码,或者您可以像使用 y 那样使用解除引用运算符:

#include <stdio.h>

typedef struct Vector2D {
    float x, y;
} Vector2D;

void Vector2DZero(Vector2D *pResult) {
    pResult->x = 0;
    (*pResult).y = 0;
}

int main(){
    Vector2D vec2d;
    Vector2DZero(&vec2d);
    printf("(%f,%f)\n", vec2d.x, vec2d.y);
    return 0;
}