Stai passando il puntatore a small per valore... Dentro alla funzione ci assegni il valore restituito dalla malloc, ma fuori è rimasto non inizializzato.