---------------------------------------------------------------------------------------------------------------------------------------
El problema es que si desreferencias el puntero a la estructura te quedas con el valor del primer elemento de la estructura(supongo que puede ser el número de clientes o no sé, por eso no puedes acceder a nada, la primera dirección de memoria de una estructura creo que normalmente es su primer elemento, dependiendo de como se organize la memoria...)(que conste que no lo tengo claro):
*(hotel + i).numero_clientes = 0;
---------------------------------------------------------------------------------------------------------------------------------------
Retirando lo dicho, es un problema de sintaxis, pues así si sale:
(*(hotel + i)).numero_clientes = 0;
Pues así no está mal, lo que pasa es que obviamente tienes que apuntar el puntero a la estructura, que la creo con calloc:
#include <stdio.h>
#include <stdlib.h>
#define NUM_HOTELES 3
/// DEFINICIÓN DE ESTRUCTURAS
struct HOTEL
{
int numero_clientes;
};
typedef struct HOTEL HOTELES;
/// DECLARACIÓN DE FUNCIONES
void HOTELES_inicializarHoteles(HOTELES *hotel);
int main (int argc, char *argv [])
{
HOTELES *hotel;
hotel
= calloc(NUM_HOTELES
,sizeof(HOTELES
));//3 hoteles HOTELES_inicializarHoteles(hotel); //Inicializamos el número de clientes de cada hotel a 0
return 0;
}
/// DEFINICIÓN DE FUNCIONES
void HOTELES_inicializarHoteles(HOTELES *hotel)
{
int i;
for(i=0; i<NUM_HOTELES; i++)
{
(hotel+i)->numero_clientes = 0;
}
}