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