tengo esta función
[I]int CrearAlmacenVacio(TInfoViaje almacen)
{
int i;
for(i=0;i<ARRAY;i++)
{
almacen[i].ocupado=0;
almacen.viaje.id=0;
}
return 0;
}
La cual como veis me tendría que poner esos campos del array a 0 pero me dice que no match for 'operator[]' in 'almacen[0]'
mi codigo es así:
Código:
Anguna idea?#include<stdio.h> #include<string.h> #include<stdlib.h> #define ARRAY 30 typedef struct { int ocupado; char nombre[20]; char apellidos[40]; char dni[10]; } Tcliente; typedef struct { int id; char destino[20]; char fsalida[8]; char fllegada[8]; int plazas; int precio; Tcliente cliente[50]; } Tviaje; typedef struct { int ocupado; Tviaje viaje; }TInfoViaje; typedef TInfoViaje TAlmacen[ARRAY]; int CrearAlmacenVacio(TInfoViaje almacen); void menu (int *op) { printf("\n\n\n---------------------------------\n"); printf("\VIAJES\n\n"); printf("\n\t1.- Dar de alta un viaje"); printf("\n\t2.- Dar de baja un viaje"); printf("\n\t3.- Dar de alta un cliente"); printf("\n\t4.- Dar de baja un cliente"); printf("\n\t5.- Listar todos los viajes"); printf("\n\t6.- Listar clientes de un viaje"); printf("\n\n\t0.- Salir de la aplicacion"); printf("\n\n\tElija una opcion (0-6): "); fscanf(stdin,"%d",op); fflush(stdin); while((*op<0)||(*op>6)) { printf("\nHa habido un error en la selección"); fscanf(stdin,"%d",op); fflush(stdin); } } int main(void) { Tcliente clientes; TInfoViaje almacen; int respuesta, i,op; CrearAlmacenVacio(almacen); do {menu(&op); switch(op) { case 1: break; case 2: break; case 3: break; case 4: break; case 5 break; case 6 break; case 7 break; } } while (op!=0);/*CUANDO SE INTRODUCE 0 SE SALE DEL PROGRAMA*/ printf("\n\n\n\n\n\n\n\n\t\t\t\tFIN DEL PROGRAMA\n\n\n\n\n\n\n\n"); return 0; } int CrearAlmacenVacio(TInfoViaje almacen) { int i; for(i=0;i<ARRAY;i++) { almacen[i].ocupado=0; almacen[i].viaje.id=0; } return 0; }
Mil gracias de antemano