C/Visual C - yo de nuevo

 
Vista:

yo de nuevo

Publicado por Franco (2 intervenciones) el 19/04/2006 13:26:56
//Esto es lo que quiero hacer: pasar una estructura alumno_franco del tipo alumnos a una funcion carga que no devuelve nada. El pasaje es por referencia.

#include<stdio.h>
void carga(struct alumnos *);
main() {
struct alumnos {
char nombre[20];
int edad;
}alumno_franco;
carga(&alumno_franco);
return 0;
}
void carga(struct alumnos *alumno_franco) {
printf("Ingrese su nombre: ");
gets(alumno_franco->nombre);
printf("Ingrese su edad: ");
scanf("%d",alumno_edad->&edad);
}

/* Error de compilacion de "carga(&alumno_franco)" "Cannot convert 'alumnos *' to 'alumnos *' */

MUCHAS GRACIAS POR SUS RESPUESTAS
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:yo de nuevo

Publicado por fernando.gomez (1603 intervenciones) el 19/04/2006 21:12:33
scanf("%d",alumno_edad->&edad);

Supongo que en lugar de alumno_edad (variable que no existe) querías decir alumno_franco. En fin, eso de alumno_franco->&edad, sería más bien &alumno_franco->edad, ¿no?

Ahora bien, regresando a tu problema. El meollo está en que la estructura la declaraste dentro de main, y por ende la estructura es struct main::alumnos. La pregunta es: ¿por qué la declaraste DENTRO del main? Si la declaras fuera, no tienes problema alguno. Por cierto, main debe regresar siempre int, y eso del default en el valor de retorno de una función ya está depreciado del estándar de C.

struct alumnos
{
char nombre[20];
int edad;
};

void carga(struct alumnos *);

int main()
{
struct alumnos alumno_franco;

carga(&alumno_franco);

return 0;
}

void carga(struct alumnos *alumno_franco)
{
printf("Ingrese su nombre: ");
gets(alumno_franco->nombre);
printf("Ingrese su edad: ");
scanf("%d",&alumno_franco->edad);
}

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar