Ver Mensaje Individual
  #3 (permalink)  
Antiguo 09/03/2013, 22:42
cesar_casla
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 4 meses
Puntos: 94
Respuesta: Como pasar un verctor de struct a una función?

Hola! una pregunta, por que declaraste la estructura dentro del main??? Esa forma, sino me equivoco, esta totalmente en desuso(y si aun se puede usar es algo molesto pasarlo a una funcion). SI de donde estudias te indica q lo hagas asi, cambia de material de estudio

La forma general de declarar estructuras es fuera del main osea de forma global y las variables del tipo de la estructura se crean en el main. Ejemplo:
Código C:
Ver original
  1. struct ejemplo { /* estructura global */
  2.   int num;
  3. };
  4.  
  5. int main() {
  6.  
  7.   struct ejemplo var; /* se crea una variable del tipo struct ejemplo */
  8.   /* ........ codigo ...... */
  9.  
  10. return 0;
  11. }


Ahora bien, pasar un vector de estructuras o un vector de int es lo mismo; por lo tanto hacer esto es un error:
Cita:
busq(dato*alumno[100],m,&f2,i,matri); // por que el "*"??
int busq(struct dato*alumno[100],int m,int *f2,int i,int matri,int f=1)
En la funcion tenes seis parametros pero en la llamada solo le pasas cinco. Otra cosa raro es que hagas int f=1... La forma correcta seria:
Código C:
Ver original
  1. busq(alumno,m,&f2,i,matri); // llamada de la funcion
  2. /*..........*/
  3.  
  4. int busq(struct dato alumno[100],int m,int *f2,int i,int matri) {
  5. /*........*/
  6. }


Investiga un poco mas el tema de estructuras y cualquier duda segui preguntando. Saludos

PD: para poner codigo usa la Highlight