Практически все нетривиальные программы выделяют и используют динамическую память. Делать это корректно становится все более важным, поскольку программы становятся все более сложными, а ошибки еще более дорогостоящими.
Типичными проблемами являются:
- утечки памяти (не освобождение более не используемой памяти)
- двойное освобождение (высвобождение памяти более одного раза)
- использование после освобождения (использование указателя на память, ранее уже освобождённую)
Задача заключается в том, чтобы отслеживать указатели, ответственные за освобождение памяти (т.е.владеющие памятью), и отличать указатели, которые просто указывают на участок памяти, контролировать где они находятся, и которые из них активны (в области видимости).
Читать полностью »