Un errore che non capisco.
E' la prima parte di un lungo programma, un inserimento di stringhe (max 20) che poi vengono stampate, se si inserisce una stringa vuota si esce dal ciclo e si termina.
Non capisco perche' se prima di inserire la prima stringa non digito invio non me la visualizza, e comincia a visualizzare dalla seconda stringa in avanti.
Se premo invio e poi digito la prima stringa viene visualizzata anche lei.
codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
main()
{
char *linea_inserita[20];
char buffer[80];
printf("Inserire una serie di righe dalla tastiera, una riga vuota per terminare\n");
int n = 0;
gets(buffer);
while((n<20) && (gets(buffer) != 0) && (buffer[0] != '\0'))
{
if((linea_inserita[n]= (char*)malloc(strlen(buffer)+1)) != NULL)
{
printf("LINEA INSERITA = %s\n", buffer);
}
n++;
}
getchar();
}