Sì, era sbagliato e l'ho corretto!
Persona *nuova_fila()
{
Persona *fila;
int n, i, m = 0;
printf("Elementi fila?");
scanf("%d", &n);
n++;
printf("n: %d", n);
if(n == 0)
return fila = NULL;
//Allocazione dinamica della fila
fila = (Persona*) malloc (n * sizeof(Persona));
for(i = 0; i < n-1; i++)
{
printf("\nElemento %d della fila.\n", ++m);
printf("Nome: "); scanf("%s", fila[i].nome);
printf("Cognome: "); scanf("%s", fila[i].cognome);
}
//printf("\nElemento %d della fila marcatore.\n", i);
strcpy(fila[n-1].nome, "");
strcpy(fila[n-1].cognome, "");
/*for(i = 0; i < n; i++)
{
printf("Nome: %s", fila[i].nome);
printf("\n");
printf("Cognome: %s", fila[i].cognome);
printf("\n");
}*/
return fila;
}
while(fila.nome[0]) entra nel ciclo fintanto che la condizione risulti essere non falsa, e quindi vera.
fila.nome[0] indica che nome è vuoto quindi perché entra nel ciclo? Funziona, ma mi è venuto il dubbio