Se ho letto bene nella funzione allocabuffer, allochi un solo byte per pixel, non dovevano essere 3?
EDIT: ok sembra che allochi un solo byte per componente, in questo caso R.
Considera anche che malloc e calloc possone restituire NULL.
EDIT 2: ho trovato l'errore:
Codice PHP:
for(i=0;i<rows*cols*3;i+3) /* i NON viene incrementato! */
devi scrivere così:
Codice PHP:
for(i=0;i<rows*cols*3;i+=3) /* i viene incrementato" */
oppure:
Codice PHP:
for(i=0;i<rows*cols*3;i=i+3) /* i viene incrementato" */