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:
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...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); }
Come posso fare per memorizzare in fase di assegnamento il valore anche nella mia memoria?
HELP!!!



Rispondi quotando