Originariamente inviato da mx92
E' sempre la stessa perchè le modifiche di Oregon le ho già provate ma il risultato non cambia.
Certo che questa è bella.

Perché chiedi aiuto ?

La funzione che alloca la matrice che ti ho inviato è corretta, ma tu non l'hai usata o usata male. Ad esempio, nella prima riga hai scritto

*m = malloc(r*sizeof(unsigned char*))

e non

*m = malloc(r*sizeof(unsigned char **))

come dovrebbe essere.

Gli ultimi due confronti con NULL sono sbagliati perché non testano i puntatori appena allocati ma sempre il primo.

E non ho controllato il resto del codice, ma se ritieni che ti dia suggerimenti sbagliati, è anche inutile controllarlo.