Perfetto, grazie mille... Ora inizia a essere più chiaro... Anche se il C per me rimane ancora parecchio misterioso...
Risalendo all'indietro con delle stampe mi sono accorto che il mio problema, o almeno uno dei problemi, è che quando ho
...
char** bigBuffer = NULL;
bigBuffer = malloc(sizeof(char*));
bigBuffer[0] = malloc (50 * sizeof(char));
printf("%i\n", (int) strlen(bigBuffer[0]));
...
Questo stampa 6 -_-'
IMMEDIATAMENTE dopo la malloc... Se io poi vado a scrivere su bigBuffer[0] una stringa >= 6 non c'è problema (i chars "nati dal nulla" vengono sovrascritti) ma se ci scrivo ad esempio "sai" mi ritrovo dentro bigBuffer "saiXXX" dove gli XXX sono i vecchi chars (che il mio terminale stampa con dei caratteri indecifrabili)...
Qualcuno ha idea di come questo sia possibile? Da qualche altra parte nel codice sono andato a scrivere dove non si dovrebbe?