potevo anche fare:

char **memory;

ma avevo preferito allocare inizialmente 0 bytes quindi ho usato malloc(0)

sta di fatto che l'output del programma parla chiaro, nella seconda funzione, cioè "allocazione(.." io riesco ad allocare spazio e lo tengo anche dopo la funzione, nella prima no.

Vi prego aiutatemi non so proprio cosa fare, nel main funzionava(la memoria rimaneva allocata), è quello il bello... Qua me la libera e me la porta a 2 bytes e non ho capito perchè!