2017-09-17 7 views
-4
typedef struct Vector2D 
{ 
    float x, y; 
} Vector2D; 

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

En fonction Vector2DZero, je veux définir les valeurs de x et y-0 pour un vecteur nommé pResult, bien que je ne suis pas sûr de savoir comment accéder aux variables dans une nouvelle fonction en particulier avec un pointeur. (Je suis sûr que ce que j'ai fait est incorrect).Comment définir les valeurs Pointer définies par Typedef Struct dans une nouvelle fonction?

Je dois utiliser les fonctions mentionnées.

Ai-je besoin d'utiliser l'opérateur flèche? S'il vous plaît aider.

+2

"Ai-je besoin d'utiliser l'opérateur flèche?" - Oui. Qu'est-il arrivé quand vous l'avez essayé? – usr

+0

Soit un opérateur de flèche ou (* pResult) .x = ... – algrid

+0

Que diriez-vous d'apprendre les bases à partir d'une ressource fiable? Les vidéos YT ou les blogs ne sont pas un bon moyen d'apprendre C. Il n'y a pas non plus d'essais et d'erreurs. – Olaf

Répondre

0

si vous voulez utiliser des points

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

otherwide

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

Merci pour la réponse rapide. Je vais l'essayer et vous le faire savoir :) –

+0

il n'y a rien à essayer. C'est dans n'importe quel livre C. –

0

Oui, vous avez besoin d'utiliser l'opérateur de flèche, comme je l'ai fait le code ci-dessous avec x, ou vous pouvez utiliser l'opérateur de déréférencement comme je l'ai fait avec 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; 
}