I suggerimenti di Stoicenko sono corretti... com'è che non funziona? Al massimo mettici un cast "char *" nella chiamata alla malloc()...
codice:
#include <stdio.h>
#include <stdlib.h>
int main()
{
char *s[5];
int i, j;
for(i=0; i<5; i++) {
s[i]= (char *) malloc( 5 * sizeof(char) );
printf("inserisci una stringa: ");
scanf("%s" , s[i]);
}
for(j=0; j<5; j++){
printf("%s, " , (s+j));
}
return 0;
}
Ovviamente tieni presente che se allochi spazio per 5 caratteri, non potrai immettere stringhe che ne abbiano più di 4 (il 5° è riservato al terminatore).
EDIT: anzi no, c'è un errore.
codice:
printf("%s, " , (s+j));
sostituisci con
codice:
printf("%s, " , *(s+j));
o con
codice:
printf("%s, " , s[j]);