Perdita di memoria & Utility

May 10

In un programma software, se una memoria assegnata ma non deallocato, la memoria potrebbe diventare inutilizzabile. Questo si chiama perdita di memoria. Perdita di memoria è un risultato della pratica codice-scrittura non corretto.

Perdita di memoria

Si consideri il seguente segmento di codice, scritto in linguaggio C.
1: int s;
2: int d;
3: s = (int) malloc (sizeof (int));
4: D = (int) malloc (sizeof (int));
5: * d = 5;
6: s = d;

Nell'esempio, s, d sono allocati ciascuno una locazione di memoria separata. In linea 6, l'assegnazione renderà punto s alla locazione di memoria di d. A questo punto, la memoria allocata da s in linea 3 non viene più utilizzato e non è recuperabile. In altre parole, questa posizione di memoria è sprecato. Se questi casi si verificano di frequente in un programma, il programma potrebbe eventualmente bloccarsi a causa della non disponibilità di memoria.

Perdita di memoria Utilità

utilità Perdita di memoria sono programmi che analizzano il codice del software e informare l'utente su eventuali perdite di memoria. Electric Fence è un programma di utilità di debug memoria libera disponibile in molte distribuzioni Linux. Un altro esempio è Rational Rose Purify.

sommario

Le perdite di memoria in grado di creare molte locazioni di memoria inutilizzabile che possono eventualmente causare un crash del programma. Utilità sono disponibili che aiutano nel trovare la fonte di perdite in un programma. Tuttavia, alla fine è responsabilità del programmatore di scrivere codice che è la memoria-perdite.