Wenas tengo un error en C que me trae loco...
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:
#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;
}
Anguna idea?
Mil gracias de antemano