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