Динамическое выделение памяти не должно использоваться
Динамическое выделение памяти не должно использоваться.
Используя стандартные программы динамического выделения памяти и освобождения, обеспеченные Стандартной Библиотекой или сторонними библиотеками, может вызвать неопределенное поведение. Например:
Вы используете free
освобождать память, которую вы не выделили с malloc
, calloc
, или realloc
.
Вы используете указатель, который указывает на освобожденное память местоположение.
Вы получаете доступ к выделенной памяти, которая не имеет никакого значения, сохраненного в него.
Динамическое выделение памяти и стандартные программы освобождения от сторонних библиотек, вероятно, предоставят подобное неопределенное поведение.
Если вы принимаете решение использовать стандартные программы динамического выделения памяти и освобождения, гарантировать, что ваше поведение программы предсказуемо. Например, гарантируйте, что вы безопасно обрабатываете отказ выделения из-за недостаточно памяти.
Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.
Группа: проект кода |
Категория: необходимый |
Категория AGC: необходимый |
Язык: C90, C99 |