codice:
#include <stdio.h>
#include <string.h>

#define MAX_UTENTI 2

struct utente{
	char nome[15];
	char cognome[15];
	int age;
};

typedef struct utente utente;	// Crea l'alias utente del tipo di dato struct utente

void set_zero(utente *);	// Riceve il puntatore ad un'array di strutture, non ritorna alcun valore
int is_empty(utente *);		// Riceve il puntatore ad un'array di strutture e ritorna un valore intero
int insert_user(utente *);	// Riceve il puntatore ad un'array di strutture e ritorna un valore intero
void read_list(utente *);	// Riceve il puntatore ad un'array di strutture, non ritorna alcun valore
	utente vett[MAX_UTENTI];	// Dichiara un vettore di MAX_UTENTI strutture di tipo utente
int main(){
	
	int i = 0;
	int a = 0;
	
	set_zero(vett);		// Setta a 0 la lista di utenti	

	printf("\n1 per inserire un nuovo utente\n2 per visuallizzare la lista utenti\n3 per terminare\n\n");
	fflush(stdin);
	scanf("%d", &i);	
 
	while(i != 3){
		
		if(i == 1){	// Se i uguale ad 1 prova ad inserire un utente nell'array di strutture
			a = insert_user(vett);		// Passa il vettore alla funzione
			if(a == -1)
				printf("Utente non inserito, lista piena, non c'è più spazio disponibile\n\n");
			else
				printf("Utente inserito nella lista\n\n");
				printf("Inserire un nuovo valore: ");
		}
		else if(i == 2){				// Leggi la lista
		   printf ("Leggo la lista\n\n");
		
			 read_list(vett);		// Passa il vettore alla funzione

			 printf("Inserire un nuovo valore: ");
		}
		else{
			printf("Scelta errata, inserire un valore corretto: ");
			printf("Inserire un nuovo valore: ");
		}
		fflush(stdin);
		scanf("%d", &i);
	}
	
	return 0;
}

/* La funzione set_zero setta a 0 l'età degli utenti, quando un utente ha età settata a 0 significa che la 
   locazione è libera, riceve il puntatore al primo elemento della lista */

void set_zero(utente *array){
	
	int i;
	
	for(i=0; i<MAX_UTENTI; i++){
		// Inserisci 0 nel campo age della locazione array + elemento corrente dell'array di strutture
		array[i].age = 0;
		strcpy(array[i].cognome,"");
	  strcpy(array[i].nome,"");
    printf ("Azzero la posizione %d",i);  
  }
  return;
}			

/* La funzione is_empty riceve il puntatore al primo elemento dell'array di strutture, ritorna -1 se l'array di
   strutture è pieno o l'indice della prima locazione libera se non è ancora pieno */

int is_empty(utente *array){
	
	int val = -1;		// Inizialmente setta a -1 il valore di val
	int i = 0;
	
	// Finchè non ha scorso tutta la lista o finchè il valore di val corrisponde a -1 scorri l'array
	for(i=0; i<MAX_UTENTI; i++){
		if(array[i].age == 0){		// Se la locazione corrente è libera
			printf ("La posizione libera è %d\n\n",i);
      return i;		    // Setta val alla locazione corrente libera
    }
  }
  printf ("NON LIBERE\n\n");
	return val;		// Ritorna val: -1 se la lista è piena o prima locazione libera

}

/* La funzione insert_user inserisce se possibile un nuovo utente nel vettore di strutture e ritorna il valore -1
   se l'array di strutture è pieno e non è riuscita ad inserire l'utente */

int insert_user(utente *array){
	
	char name[15];
	char surname[15];	
	int age;

	int locazione = is_empty(array);	// Metti in locazione il valore della prima locazione libera
	
	if(locazione != -1){		// Se può inserire un valore nell'array di strutture (la lista non è piena)
		printf("Inserire il nome: ");
		fflush(stdin);
		scanf("%s", array[locazione].nome);

    printf("Inserire il cognome: ");
    fflush(stdin);
		scanf("%s", array[locazione].cognome);

		printf("Inserire l'età: ");
		fflush(stdin);
		scanf("%d", &array[locazione].age);
	}
	printf ("La locazione è %d\n\n",locazione);
	return locazione;	// Ritorna -1 se la lista è piena, altro se ha effettuato l'inserimento
}


void read_list(utente *array){

	int i; 
	// Leggi dall'array finchè ci sono ancora locazioni o finchè la locazione trovata non è vuota (age == 0)
	for(i=0; i<MAX_UTENTI && array[i].age != 0; i++){
		printf("Nome utente %d: %s\n",i, array[i].nome);
		printf("Cognome utente %d: %s\n",i, array[i].cognome);
		printf("Età utente %d: %d\n\n", i, array[i].age);
	}

return;
}
se ti può essere utile ho fatto qualche correzione...ora dovrebbe andare.

ora gira con una lista di max 2 utenti...basta che cambi la define in cima però per modificarlo