Prova a dichiarare l'array in modo statico

codice:
char array_punts[5][5];
e ti funziona.

Nel tuo codice non stai inizializzando il numero di stringhe, e quindi fai un paciocco con la gestione di esse in memoria


Consiglio: inizia ad istanziare la memoria per gestire queste stringhe in modo dinamico, per esempio, se nel tuo codice avessi fatto un lavoro del genere

codice:
char *array_punts[5];
array_punts = (char **)malloc(sizeof(char) * 5);
avresti risolto perchè ora il numero di stringhe è inizializzato.
Molto meglio invece se fai così

codice:
char **array_punts;
int i;

array_punts = (char **)malloc(sizeof(char) * 5); // Organizzi l'array per contenere 5 stringhe

for (i = 0; i < 5; i++) 
   array_punts[i] = (char *)malloc(sizeof(char) * 5); // Istanzi la lunghezza di ognuna delle 5 stringhe
Cosi ottieni un array che può contenere 5 stringhe, ognuna di lunghezza 4 (5 - carattere terminatore '\0')