Pasar el valor de un parámetro que viene de una estructura a una funcion. C++

Iniciado por tanychu, 19 Septiembre 2010, 15:20 PM

0 Miembros y 1 Visitante están viendo este tema.

tanychu

Buenas a todos, estoy desquiciado por que mi compilador no me compila una operacion, y tiene que ser por que no lo hago bien logicamente..

Digamos que me creo una estructura con arrays y demás.


Esta es la estructura:    struct equipo
                                 {
                                      char nombre[65];
                                      char DNI[10];
                                      unsigned int edad;
                                      unsigned int dorsal;
                                      unsigned long int sueldo;
                                      unsigned int tarjetas;
                                      int goles;
                                 }persona[15];

me creo un menú, que me diga, que jugador quieres buscar, y lo buscas con un array.
                               

Ejemplo:        cout << "\xa8Qu\x82 jugador quieres dar de baja? Escribe su dorsal: ";
                    cin >> persona[.i.].dorsal;

Los puntos entre el corchete y la "i" no existen, simplemente que aqui desaparece si lo pongo junto.

ahora viene la parte que no me sale, y será por que no puedo meterle el parametro a la funcion tal y como lo hago.

Si me creo esta funcion: bajajugador
haciendolo de esta manera no podré pasarle el valor?

unsigned int bajajugador(unsigned int persona[.i.].dorsal)
{
     lo que sea.
}

Pues llamando a la funcion arriba, de esta manera:

bajajugador(persona[.i.].dorsal);

me lo da como erroneo. y no se como pasarle el valor.

me podríais ayudar por favor? estoy comiendome el tarro mucho jejeje.

PD: Tengo el compilador, wxDev-C++.

Gracias por adelantado.. :D:D

Tambien he estado buscando mi mismo problema antes de postear, pero a lo mejor no lo he encontrado por la manera de formular las dudas, disculpen si esta solucionado en otro post.

Editado: También he probado pasandole el valor de 'i' a la nueva funcion.
comprobado 'i' tiene el valor del hueco 15 en el array, pero cuando en la nueva funcion, le pido, que me diga el nombre que he guardado anteriormente, no me lo reconoce. exactamente asi.

int bajajugador (int i)   
{
     cout << jugador[.i.].nombre << no me dice el nombre. me sale un asterisco*.
}
     y supuestamente al decirle el hueco del array donde está, deberia de saber a
     quien me refiero no?... perdon por ser tan pesao jejeje.

Littlehorse

Para no tener problemas con el bbcode, utiliza las etiquetas GeSHi para poner codigo:

C
[code=c] codigo [/code]

C++
[code=cpp] codigo [/code]

En cuanto a la duda, queres pasar el dato por valor o por referencia? si es por valor basta con definir la función como:

Código (cpp) [Seleccionar]
unsigned int bajajugador(unsigned int dor)

y luego en la llamada:

Código (cpp) [Seleccionar]
bajajugador(persona[i].dorsal);

Si es por referencia, puedes o bien usar un puntero a la estructura:

Código (cpp) [Seleccionar]
unsigned int bajajugador(struct equipo *ptr)

un puntero a entero:

Código (cpp) [Seleccionar]
unsigned int bajajugador(unsigned int *ptr)

o una referencia:

Código (cpp) [Seleccionar]
unsigned int bajajugador(struct equipo &Ref)

u:

Código (cpp) [Seleccionar]
unsigned int bajajugador(unsigned int &Ref)


etc.

Busca sobre pasajes por valor y referencia, punteros, referencias, y punteros a estructura.

Saludos
An expert is a man who has made all the mistakes which can be made, in a very narrow field.

tanychu

Muchisimas gracias :D:D:D, si que se pasa de esa manera, estaba desquiciaico ya jejeje. saludos y gracias :D:D

Littlehorse

An expert is a man who has made all the mistakes which can be made, in a very narrow field.