Блок памяти должен только быть освобожден, если это было выделено посредством Стандартной Библиотечной функции
Блок памяти должен только быть освобожден, если это было выделено посредством Стандартной Библиотечной функции.
Стандартными Библиотечными функциями, которые выделяют память, является malloc
, calloc
и realloc
.
Вы освобождаете блок от памяти, когда вы передаете ее адрес free
или realloc
функция. Следующие причины неопределенное поведение:
Вы освобождаете блок от памяти, которую вы не выделили.
Вы освобождаете блок от памяти, которые уже освободили прежде.
Можно проверять на это правило с анализом Bug Finder только.
Если вы ожидаете нарушение правила, но не видите его, относитесь, чтобы Диагностировать, Почему Кодирующие Стандартные Нарушения Не Появляются как ожидалось.
Группа: ресурсы |
Категория: обязательный |
Категория AGC: обязательный |
MISRA C:2012 Dir
4.13
| MISRA C:2012 Rule
21.3
| Invalid free of
pointer
| Deallocation of
previously deallocated pointer
| Check MISRA C:2012 (-misra3)