Programmazione orientata agli oggetti in ANSI-C. Gestione della Memoria

Programmazione orientata agli oggetti in ANSI-C. Gestione della Memoria

Abbiamo tralasciato di discutere un aspetto fondamentale: come si ottiene un set. Set è un puntatore, non un tipo definito da typedef; di conseguenza non possiamo definire variabili locali o globali di tipo Set.

Invece, abbiamo intenzione di utilizzare puntatori per far riferimento a set o ad elementi, e dichiariamo pertanto la sorgente e la destinazione di tutti i dati in new.h.

void * new (const void * type, ...);
void delete (void * item);

Proprio come in Set.h questo file è protetto da un simbolo di preprocessore NEW_H. Il testo qui sopra mostra solo le parti interessanti di ogni nuovo file, il dischetto sorgente contiene il codice completo di tutti gli esempi.
 
new() accetta un descrittore come Set e possibilmente più argomenti per l’inizializzazione e restituisce un puntatore al nuovo elemento – quest’ultimo con una rappresentazione conforme al descrittore. delete() accetta un puntatore originariamente prodotto da new() e ricicla le risorse associate.
 
new() e delete() sono presumibilmente il frontend alle funzioni ANSI-C chiamate calloc() e free(). Se è così, il descrittore deve indicare come minimo quanta memoria viene richiesta

Leave a Reply