Форма оператора delete должна соответствовать, форма нового оператора раньше выделяла память
Форма оператора delete должна соответствовать, форма нового оператора раньше выделяла память.
Оператор delete
выпускает блок памяти, выделенной на куче. При попытке получить доступ к местоположению на куче, которую вы не выделили ранее, отказ сегментации может произойти.
Если вы используете обозначение отдельного объекта для delete
на указателе, который ранее выделяется с обозначением массивов для new
, поведение не определено.
Проблема может также подсветить другие ошибки кодирования. Например, вы, возможно, хотели использовать оператор delete
или предыдущий оператор new
на различном указателе.
Средство проверки отмечает дефект когда:
Вы выпускаете блок памяти с оператором delete
, но память не была ранее выделена с оператором new
.
Вы выпускаете блок памяти с оператором delete
с помощью обозначения отдельного объекта, но память была ранее выделена как массив с оператором new
.
Этот дефект применяется только к исходным файлам C++.
Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.
Группа: вспомогательная библиотека языка |