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]);