Функции malloc, calloc, realloc и free не должны использоваться
Функции malloc, calloc, realloc и free не должны использоваться.
Выделение и освобождение памяти в стиле C с использованием malloc, calloc, realloc, или free не является безопасным типом и не вызывает конструкторы/деструктор класса для создания/удаления объектов.
Например, malloc выделяет память объекту и возвращает указатель на выделенную память типа void*. Затем программа может неявно привести возвращенный указатель к другому типу, который может не соответствовать предполагаемому типу объекта.
Использование этих функций распределения и освобождения может привести к неопределенному поведению, если:
Вы используете free для освобождения памяти, выделенной оператором new.
Используется оператор delete для освобождения памяти, выделенной malloc, calloc, или realloc.
Правило не нарушается при динамическом выделении или освобождении памяти с использованием перегруженных new и delete операторов или пользовательских реализаций malloc и free.
Если вы ожидаете нарушения правила, но не видите его, обратитесь к разделу Нарушения стандартов кодирования не отображаются.
| Группа: 18 Библиотека языковой поддержки |
| Категория: Обязательно, Автоматизировано |