Отмена выделения указателя без соответствующего динамического распределения
Этот дефект возникает, когда блок памяти, освобожденный с помощью free
функция не была ранее выделена с помощью malloc
, calloc
, или realloc
.
The free
функция освобождает блок памяти, выделенный на куче. Если вы пытаетесь получить доступ к местоположению на куче, которую вы ранее не выделяли, может возникнуть отказ сегментации.
Проблема может выделить ошибки кодирования. Например, вы, возможно, хотели использовать free
функция или предыдущий malloc
функция на другом указателе.
В большинстве случаев можно исправить проблему, удалив free
оператор. Если указателю не выделена память из кучы с malloc
или calloc
, вам не нужно освобождать указатель мыши. Вы можете просто повторно использовать указатель при необходимости.
Если проблема подсвечивает ошибку кодирования, такую как использование free
или malloc
на неправильном указателе исправьте ошибку.
Если проблема возникает из-за использования free
функция для освобождения памяти, выделенной с помощью new
оператор, замените free
функция со delete
оператор.
Группа: Динамическая Память |
Язык: C | C++ |
По умолчанию: On |
Синтаксис командной строки: BAD_FREE |
Влияние: Высокий |
ИДЕНТИФИКАТОР CWE: 404, 590, 762 |