Функции 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 Language Support Library |
| Категория: Необходимый, Автоматизированный |