¿Dónde está el error? ¡¡¡AYUDA!!!
El compilador me dice que en la función modif estoy accediendo a los miembros 'im' y 're' que no forman parte de una estructura. ¿Es cuestión de punteros? Ayudadme porfa...
typedef struct{
float re,im;
}complejo;
void modif(complejo *const c);
void main(void){
complejo num;
num.re=5.1;
num.im=8.3;
modif(&num);
}
void modif(complejo *const c){
*c.re=5.0;
*c.im=0.0;
}
Muchas gracias
typedef struct{
float re,im;
}complejo;
void modif(complejo *const c);
void main(void){
complejo num;
num.re=5.1;
num.im=8.3;
modif(&num);
}
void modif(complejo *const c){
*c.re=5.0;
*c.im=0.0;
}
Muchas gracias
Pues parece que puede haber 2 problemas aunque no estoy seguro; uno es que si estas modificando el valor de tu complejo no puedes declararlo en la cabecera de la funcion como const (quita eso a ver) aunque puede que si funcione xq es un puntero.
Ahora el otro, (seguramente tu error estara ahi) a la funcion le pasas complejo *const c, o sea un puntero con lo cual cuando quieres variar el valor de sus campos ya no debes poner *c.re sino c.re y lo mismo con c.im.
Prueba a ver, si funciona, de pm y si no pues lo siento :-) Ta otra
Ahora el otro, (seguramente tu error estara ahi) a la funcion le pasas complejo *const c, o sea un puntero con lo cual cuando quieres variar el valor de sus campos ya no debes poner *c.re sino c.re y lo mismo con c.im.
Prueba a ver, si funciona, de pm y si no pues lo siento :-) Ta otra
lo de const es un error pero el error grave es al acceder a la struct, al ser un puntero a una estructura tienes que acceder a la struct usando el operador -> , con lo que sería: c->re=5.0 o lo que sea, tb podrías acceder haciendo (*c).re=5.0 pero esa forma es bastante mas fea y ofuscada.
