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