Devo realizzare per un esame un allocatore di memoria... le specifiche sono un po' più complesse ma il problema di fondo è il seguente:

Devo realizzare una struttura che serva da memoria, in particolare ho pensato a dichiararmi un array di char visto che char ha dimensione fissa di 1 byte;

L'idea dell'allocatore è simile a quella che è anche presente sul libro Kerninghan,Ritchie "Il linguaggio C" e che riporto qui sotto:

codice:
//ALLOCATORE SEMPLICISTICO DI MEMORIA
#include <stdio.h>
#include <stdlib.h>
#define ALLOCSIZE 100
	

typedef struct memoria{
	int posizioneAttuale;
	char* struttura;
	int dimensione;
}memoria;

//crea la memoria
memoria* creaMemoria(int dim)
{
	memoria* mem = malloc(sizeof(memoria));
	mem->dimensione=dim;
	mem->posizioneAttuale=0;
	return mem;
}

//alloca uno spazio di dimensione n in memoria
char* alloc(int n, memoria * memory)		/* ritorna un puntatore ad n caratteri */
{
	int vecchiaPosizione = memory->posizioneAttuale;
	memory->posizioneAttuale += n;
	return memory->struttura+vecchiaPosizione;
}

	
int main(int argc, char* argv[])
{	
	memoria* mem = creaMemoria(10);
	char* stringa= alloc(5,mem);
	stringa="ecco";
	printf("%s\n",stringa);
	printf("%s\n",mem->struttura);
}
In fase di debug vedo che quando assegno allavariabile stringa il valore "ecco" tale valore non viene riportato nella mia memoria ovvero mem->struttura, questa cosa si vede anche dal fatto che la seconda printf non stampa nulla...
Come posso fare per memorizzare in fase di assegnamento il valore anche nella mia memoria?

HELP!!!