Шаг 40.
Средства отладки в Microsoft Visual C++ 5.0. Отладочные версии new и delete

    На этом шаге мы рассмотрим использование отладочных версий new и delete.

    Утечка памяти является наиболее пагубной из всех ошибок, допускаемых программистами. Под утечкой памяти понимается возникновение такой ситуации, когда программе выделяется память, которую она не возвращает. Самой простой причиной является выполнение функции new без соответствующего оператора delete. Этот случай помогает найти сама среда программирования.

    При создании отладочной версии приложения, везде, где Вы используете new и delete, на самом деле применяются их отладочные версии, отслеживающие название файла и номер строки, в которых выполняется каждое выделение памяти. Затем все операторы delete сопоставляются с new. По окончании работы программы будет обнаружен остаток невозвращенной системе памяти, и в окне вывода будет выдано предупреждающее сообщение.

    На рисунке 1 приведен текст функции OnCalculateCalculateaverage(), в которой имеется утечка памяти: int *p=new int[20];. После выполнения приложения командой Build | Start Debug | Go вкладка Debug содержит имя файла (buggyView.cpp) и номер строки (112), где произошла утечка памяти.


Рис.1. Диагностическое сообщение при утечке памяти

    На следующем шаге мы рассмотрим обработку исключений.




Предыдущий шаг Содержание Следующий шаг