+Una modalità alternativa per effettuare dei controlli di consistenza sullo
+stato delle allocazioni di memoria eseguite con \func{malloc}, anche questa
+fornita come estensione specifica (e non standard) delle \acr{glibc}, è quella
+di utilizzare la funzione \funcd{mcheck}, che deve essere chiamata prima di
+eseguire qualunque allocazione con \func{malloc}; il suo prototipo è:
+\begin{prototype}{mcheck.h}{mcheck(void (*abortfn) (enum mcheck\_status
+ status))}
+ Attiva i controlli di consistenza delle allocazioni eseguite da \func{malloc}.
+
+ \bodydesc{La funzione restituisce 0 in caso di successo e $-1$ in caso di
+ fallimento; \var{errno} non viene impostata.}
+\end{prototype}
+
+La funzione consente di registrare una funzione di emergenza, da passare come
+argomento, che verrà eseguita tutte le volte che, in una successiva esecuzione
+di \func{malloc}, venissero trovate delle inconsistenze, come delle operazioni
+di scrittura oltre i limiti dei buffer allocati. Per questo motivo la funzione
+deve essere chiamata prima di qualunque allocazione di memoria, altrimenti
+fallirà con un valore di ritorni di $-1$.
+
+Se come argomento si passa \var{NULL} verrà utilizzata una funzione
+predefinita che stampa un messaggio di errore ed invoca la funzione
+\func{abort} (vedi sez.~\ref{sec:sig_alarm_abort}), altrimenti si dovrà
+utilizzare una funzione ad hoc che riceverà come argomento un codice di tipo
+\type{mcheck\_status}, un tipo enumerato che può assumere soltanto i valori di
+tab.
+
+
+
+\begin{table}[htb]
+ \centering
+ \footnotesize
+ \begin{tabular}[c]{|l|c|c|c|p{7cm}|}
+ \hline
+ \textbf{Valore} & \textbf{Significato} \\
+ \hline
+ \hline
+ \macro{}& \\
+ \macro{}& \\
+ \macro{}& \\
+ \macro{}& \\
+ \macro{}& \\
+ \macro{}& \\
+ \macro{}& \\
+ \macro{}& \\
+ \macro{}& \\
+ \macro{}& \\
+ \macro{}& \\
+ \macro{}& \\
+ \macro{}& \\
+ \hline
+ \end{tabular}
+ \caption{Valori dello stato.}
+ \label{tab:mcheck_status_value}
+\end{table}
+