TGViewer
Senior C++ Developer Senior C++ Developer @seniorcpp · 11.6K subscribers
Post #3288 684
malloc стал безопасен

В предыдущих версиях использование низкоуровневых функций, унаследованных из языка Си, не рекомендовалось. Проблема в том, что Си оперирует байтами, а в С++ происходит работа с объектами со своим временем жизни и областью видимости. До С++ 20 время жизни объекта начиналось после вызова оператора new. В новой версии все изменилось — принято считать, что набор низкоуровневых функций — memcpy, memmove, malloc, aligned_alloc, calloc, realloc, bit_cast, начинает время жизни объекта. Т. е. следующий код(см картинку) будет валиден.

Т. е. у нас появляется обратная совместимость с языком Си, но относительно С++ в новой трактовке.
More from @seniorcpp
  1. Sep 30, 2026Алгоритм copy_n Используется для копирования элементов из одного контейнера в другой.
  2. Sep 28, 2026Упрощаем код с помощью if constexpr и концептов C++17/C++20 Смотреть статью
  3. Sep 27, 2026#вопросы_с_собеседований Как следует обрабатывать ошибки во время выполнения в C++? — Ошиб…
  4. Sep 25, 2026Проверка возможности конструирования элемента с набором конкретных параметров Когда шаблон…
  5. Sep 24, 2026Передача адреса переменной в функцию в Си. https://youtu.be/OXhrYl9no2A
  6. Sep 24, 2026🤖 Что происходит внутри ИИ-агента, когда он работает с корпоративными данными? 6 октября…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →