Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Vector de structs a funcion

Estas en el tema de Vector de structs a funcion en el foro de C/C++ en Foros del Web. Saludos, Vereis tengo la siguiente estructura: typedef struct { int num; }xNumeros; I dentro del main declaro la siguiente variable: xNumeros numeros[MAX]; donde MAX es ...
  #1 (permalink)  
Antiguo 20/05/2008, 09:55
 
Fecha de Ingreso: mayo-2008
Mensajes: 18
Antigüedad: 16 años
Puntos: 0
Vector de structs a funcion

Saludos,

Vereis tengo la siguiente estructura:

typedef struct
{
int num;
}xNumeros;


I dentro del main declaro la siguiente variable:

xNumeros numeros[MAX]; donde MAX es una constante de tipo entero.

El problema viene cuando tengo que pasar esto como parametro a una funcion void. A continuacion os pongo la llamada y la declaracion de la funcion:

- Llamada
irAFuncion (&numeros);


- Y la declaracion siguiente..
void irAFuncion (xNumeros *numeros[MAX])
{
.....
}



El error que me da es [warning]passing arg1 of 'irAFuncion' from incompatible pointer type

Agradezco la ayuda que me podais dar.
Un saludo ;)
  #2 (permalink)  
Antiguo 20/05/2008, 10:02
Avatar de aloqui  
Fecha de Ingreso: diciembre-2007
Mensajes: 973
Antigüedad: 16 años, 5 meses
Puntos: 24
Respuesta: Vector de structs a funcion

Creo que la forma correcta de llamarle es pasandole un puntero a struct de tipo xNumeros, es decir:
o bien: irAFuncion ( &numeros[0] );
o simplemente: irAFuncion ( numeros );
__________________
Grupos de Música
Pop Music Stars
  #3 (permalink)  
Antiguo 20/05/2008, 10:25
 
Fecha de Ingreso: mayo-2008
Mensajes: 18
Antigüedad: 16 años
Puntos: 0
Respuesta: Vector de structs a funcion

Saludos,

He probado las dos opciones pero me da el mismo error, tambien he probado de llamarlo asi: irAFuncion (&numeros[]) y asi irAFuncion(numeros[]) pero tambien me da error.
  #4 (permalink)  
Antiguo 20/05/2008, 12:12
Avatar de _Lucifer_  
Fecha de Ingreso: junio-2006
Mensajes: 1.662
Antigüedad: 17 años, 11 meses
Puntos: 28
Respuesta: Vector de structs a funcion

Lo que estás indicando en el encabezado de la función es que vas a pasar un arreglo de punteros:
Código:
void irAFuncion (xNumeros *numeros[MAX])
{
.....
}
Quítale el asterisco y el llamado debería quedar algo así:
Código:
// Llamado
irAFuncion (numeros);

// Definición
void irAFuncion (xNumeros numeros[])
{
.....
}
Claro, todo depende de lo que vallas a hacer dentro de esa función.

Saludos
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba:
  #5 (permalink)  
Antiguo 20/05/2008, 13:11
 
Fecha de Ingreso: mayo-2008
Mensajes: 18
Antigüedad: 16 años
Puntos: 0
Respuesta: Vector de structs a funcion

Genial! Problema solucionado


Muchisimas gracias Lucifer!!
  #6 (permalink)  
Antiguo 20/05/2008, 13:16
 
Fecha de Ingreso: abril-2008
Mensajes: 141
Antigüedad: 16 años
Puntos: 0
Respuesta: Vector de structs a funcion

Los arrays se pasan automaticamente por referencia (ya sea un array de estructuras, un array de caracteres (cadenas), array de array...) y el tipo xNumeros sobra, no lo necesitas para crear un array de enteros. Basta con declararlo de la siguiente forma:

Código:
int num[MAX];
Luego, en la cabecera de la funcion pondrias:

Código:
irAFuncion (num);
Código:
void irAFuncion (int num[MAX]){
      ...
}
Saludos.

Última edición por GagleKas; 20/05/2008 a las 13:23
  #7 (permalink)  
Antiguo 20/05/2008, 13:33
Avatar de _Lucifer_  
Fecha de Ingreso: junio-2006
Mensajes: 1.662
Antigüedad: 17 años, 11 meses
Puntos: 28
Respuesta: Vector de structs a funcion

Cita:
Iniciado por xafft Ver Mensaje
Genial! Problema solucionado


Muchisimas gracias Lucifer!!
De nada...

Saludos
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba:
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 04:39.