Osserva questa sequenza:

Tu dichiari una tabella inizialmente vuota, in cui tutti i puntatori puntano a NULL

quando vuoi inserire un elemento chiami la funzione puthash la quale chiama la gethash la quale resituirà certamente NULL, visto che la tabella è vuota.

La puthash uscirà sempre dal momento che la condizione di questo if
codice:
if (e==NULL)
    return NULL;
è sempre vera per una tabella vuota.