Come codice mi sembra un po' intricato... o sono io che sbaglio il concetto di "allocatore di memoria"?
Intanto un primo errore è che nella struct memoria hai dichiarato come struttura un puntatore a char al quale non è collegata nessuna area di memoria. Quindi o dichiari quel char come vettore (char struttura[100]) oppure ogni volta che allochi lo spazio di una struct memoria devi allocare altro spazio per la stringa (ma poi ti devi ricordare di liberare entrambi).
Poi non capisco a cosa servano le variabili posizioneAttuale e dimensione all'interno della strutturra... la dimesione la puoi ottenere con sizeof() e la posizione con il puntatore... o forse si riferiscono ad altro?