Prova questo codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LENGTH 50
void eliminaACapo(char *stringa)
{
if(stringa[strlen(stringa)-1] == '\n')
stringa[strlen(stringa)-1] = '\0';
}
void cleanBuffer()
{
while(getchar()!='\n');
}
int main()
{
char **array_stringhe;
char tmp[MAX_LENGTH];
int numero_stringhe;
int i;
printf("Quante stringhe vuoi inserire? ");
scanf("%d", &numero_stringhe);
cleanBuffer();
array_stringhe = malloc(numero_stringhe * sizeof(char *));
for(i=0; i<numero_stringhe; i++)
{
array_stringhe[i] = malloc(MAX_LENGTH * sizeof(char));
}
for(i=0; i<numero_stringhe; i++)
{
printf("Inserisci stringa: ");
fgets(tmp, MAX_LENGTH, stdin);
eliminaACapo(tmp);
strcpy(array_stringhe[i], tmp);
}
for(i=0; i<numero_stringhe; i++)
{
printf("[%d]: %s\n", i, array_stringhe[i]);
}
return 0;
}
Soprattutto prova a leggerlo bene e vedere se c'è qualcosa che non ti è chiaro.
A me funziona correttamente...