Ti mancava una parentesi nel for. A me così funziona correttamente:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LENGTH 50
int main()
{
char **array_stringhe;
int numero_stringhe = 10;
int i;
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<10; i++)
{
printf("Inserisci stringa: ");
fgets(array_stringhe[i], MAX_LENGTH, stdin);
}
printf("Prima stringa: %s\n", array_stringhe[0]);
printf("Seconda stringa: %s\n", array_stringhe[1]);
return 0;
}
Nota: la fgets memorizza nella stringa anche il carattere di "a capo", cioè '\n'. Se lo vuoi eliminare devi procedere manualmente: ti conviene scriverti una piccola funzione che faccia questa operazione e chiamarla per ogni stringa che leggi.