Ver Mensaje Individual
  #5 (permalink)  
Antiguo 22/01/2010, 02:50
Megamouse
 
Fecha de Ingreso: enero-2010
Mensajes: 24
Antigüedad: 15 años
Puntos: 0
Respuesta: [C++] Pasar array de registros a función

Se me olvido que la variable es un array de estructuras

Aqui tienes para pasar solo un elemento o todo el array:

Código C:
Ver original
  1. int main(int argc, char *argv[])
  2. {
  3.   int i;
  4.   TAgente agente[10];
  5.  
  6.   memset (agente, 0, sizeof(agente));
  7.  
  8.   Agencia (&agente[0]);
  9.   Agencia (&agente[5]);
  10.  
  11.   for (i=0; i<10; i++)
  12.     fprintf (stderr, "Nombre Agente[%d]: [%s]\n", i, agente[i].nombre);
  13.  
  14.   memset (agente, 0, sizeof(agente));
  15.  
  16.   Agencia2 (agente);
  17.  
  18.   for (i=0; i<10; i++)
  19.     fprintf (stderr, "Nombre Agente2[%d]: [%s]\n", i, agente[i].nombre);
  20.  
  21.   return 0;
  22. }
  23.  
  24. void Agencia (TAgente *agente)
  25. {
  26.   strcpy (agente->nombre, "prueba");
  27. }
  28.  
  29. void Agencia2 (TAgente *agente)
  30. {
  31.   int i;
  32.  
  33.   for (i=0;i<10;i++)
  34.     sprintf ((&agente[i])->nombre, "prueba2_%d", i);
  35. }

Y queda de salida:

Nombre Agente[0]: [prueba]
Nombre Agente[1]: []
Nombre Agente[2]: []
Nombre Agente[3]: []
Nombre Agente[4]: []
Nombre Agente[5]: [prueba]
Nombre Agente[6]: []
Nombre Agente[7]: []
Nombre Agente[8]: []
Nombre Agente[9]: []
Nombre Agente2[0]: [prueba2_0]
Nombre Agente2[1]: [prueba2_1]
Nombre Agente2[2]: [prueba2_2]
Nombre Agente2[3]: [prueba2_3]
Nombre Agente2[4]: [prueba2_4]
Nombre Agente2[5]: [prueba2_5]
Nombre Agente2[6]: [prueba2_6]
Nombre Agente2[7]: [prueba2_7]
Nombre Agente2[8]: [prueba2_8]
Nombre Agente2[9]: [prueba2_9]