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