Sviluppo di MEMORIA

Progettiamo una stuttura dati per le memorie, cioè le associazioni tra identificatori e numeri reali enormi.
Decidiamo di realizzare una struttura dati dinamica schematicamente presentata di seguito.

La corrispondente dichiarazione di tipo C è
typedef struct MEM * MEMORIA;
struct MEM{ IDENT Variabile;
            REALE_ENORME Valore;
            MEMORIA Next;
           };
Sviluppiamo ora le varie funzioni che appaiono nell'interfaccia del modulo.
Modifica della memoria
MEMORIA Modifica(IDENT id, REALE_ENORME re, MEMORIA m);
/*ritorna la memoria ottenuta modificando m in modo che il valore di id  sia re*/
{
    MEMORIA m1;
 
    m1 = (MEMORIA)malloc(sizeof(struct MEM));
    m1 -> Valore = re;
    Copia_Ident(m1 -> Variabile,id);
    m1 -> Next = m;
    return m1;
}
Recupero del valore associato ad un identificatore
REALE_ENORME Valore_Di(IDENT id, MEMORIA m)
/*ritorna il valore associato ad id in m,
  si assume che ci sia sempre un'associazione per id in m */
{
    while(m != NULL)
        if(Uguali_Ident(m -> Variabile,id))
            return m -> Valore;
        else 
            m = m -> Next; 
}
A questo punto abbiamo sviluppato due file che faranno parte del programma, l'interfaccia e il body di questo modulo: MEMORIA.h e MEMORIA.c.