Hola,
Estoy intentando implementar un programa que calcula rotaciones de vectores en R2. Tengo una estructura sVector2 que contiene dos floats x, y. Entonces tengo un puntero que apunta a una estructura de ese tipo (lo defino como Vector2). Creo que estoy haciendo algo mal al acceder a los mienbros de la estructura, pero no logro averiguar el problema. Al intentar hacer "Vector2->x" o "Vector2->y" me da el error que menciono el el título " dereferencing pointer to incomplete type"
Copio el código del programa:
Código c:
Ver original#include <stdio.h>
#include <stdlib.h>
#include <math.h>
struct sVector2{
float x;
float y;
};
typedef struct sVector* Vector2;
Vector2 rotacion(Vector2 v, int grados);
void muestra_coord(Vector2 a);
Vector2 nuevo_vector();
int main(){
int i,j;
Vector2 a = nuevo_vector();
Vector2 b = nuevo_vector();
for(i=0; i<40; i++){
for(j=0; j<40; j++){
a->x = (float) i; //ERROR
a->y = (float) j; //ERROR
b=rotacion(a,90);
muestra_coord(a);
muestra_coord(b);
}
}
return 0;
}
Vector2 rotacion(Vector2 v, int grados){
Vector2 res = nuevo_vector();
res
->x
= cos(grados
) - sin(grados
); //ERROR res
->y
= sin(grados
) + cos(grados
); //ERROR return res;
}
void muestra_coord(Vector2 a){
printf("(%f,%f) ",a
->x
,a
->y
); //ERROR }
Vector2 nuevo_vector(){
Vector2 nuevo
= (Vector2
) malloc( sizeof(struct sVector2
) ); if(nuevo == NULL){
printf("No se puede alocar memoria \n"); }
return nuevo;
}
Gracias