Библиотека C/C++ разработчика
6.8K subscribers
654 photos
690 videos
8 files
939 links
Полезные материалы по всему, что может быть полезно плюсовику/сишнику. По всем вопросам @evgenycarter
Download Telegram
Верле: разрешаем коллизии

Часть 1
Всех приветствую! Сегодня мы попробуем написать некое подобие простейшего физического движка.

https://habr.com/ru/articles/775228/


Часть 2
В прошлой части мы искали коллизии самым примитивным образом - перебирали все пары объектов и сравнивали сумму их радиусов с расстоянием между их центрами. При таком подходе максимальное число объектов, которое наш движок мог выдержать, составляло несколько сотен.

Возникает закономерный вопрос: зачем проверять на пересечение окружности, которые находятся далеко друг от друга?

Действительно, теперь мы будем поступать чуть хитрее.

https://habr.com/ru/articles/778482/

#cpp #programming

👉 @cpp_lib
2👍2
Следует ли проверять указатель на NULL перед вызовом функции free?

Короткий ответ: нет. Тем не менее, раз про это вновь и вновь спрашивают на Reddit, Stack Overflow и других сайтах, пришло время подробно разобрать эту тему. Оказывается, есть много интересного, о чём можно порассуждать.

https://habr.com/ru/companies/pvs-studio/articles/791798/

#cpp #programming

👉 @cpp_lib
👍52😁1
Шпаргалка по C++

Шпаргалка фокусируется на языке, а не стандартной библиотеке, и учитывает особенности C++11/C++14

#cpp #programming

👉 @cpp_lib
13👌5🤔1🐳1
Проектно-ориентированное обучение

Список уроков по программированию, в которых начинающие разработчики программного обеспечения учатся создавать приложения с нуля. Эти уроки разделены по различным основным языкам программирования. Уроки могут включать в себя несколько технологий и языков.

https://github.com/practical-tutorials/project-based-learning?tab=readme-ov-file#cc

#cpp #programming

👉 @cpp_lib
👍61
Подготовка инструментов под фаззинг UEFI на базе edk2 в Windows

Так повелось в мире, что время от времени необходимо проводить исследования безопасности драйверов и прошивок. Одним из способов исследования является — фаззинг (Fuzzing). Не будем останавливаться на описании самого процесса фаззинга, для этого есть эта статья, отметим только, что в основном его используют для исследования прикладных приложений. И тут возникает вопрос: как профаззить прошивку, в частности прошивку UEFI? Здесь будет рассказано об одном из способов с использованием программного эмулятора EDKII, чтобы проводить фаззинг без развертывания аппаратных стендов. И что важно, все это сделаем в Windows.

Сразу, что такое EDKII? — это среда разработки и эмулятор ПО согласно спецификации UEFI. Про разработку в EDKII есть ряд статей (вот и вот), а наша задача связать эмулятор EDKII и фаззер.

А реализовывать инструментацию будем под фаззер WinAFL.

https://habr.com/ru/articles/773548/

#cpp #programming

👉 @cpp_lib
👍2🗿21
CLI'нический парсинг

Каждый программист однажды получает по голове необходимостью парсить аргументы командной строки. Кого-то этот удар сломит и заставит написать несколько сотен строк кода, по которому потом будут восстанавливать интерфейс программы следующие поколения, другие сделают наборы рантайм мап и начнут оперировать строками, по которым будет уже непонятно, то ли это так и должно быть, то ли опечатка... Последние в порыве отчаяния возьмут целый boost для этой задачи, а тот сведётся всё к тем же рантайм мапам и строкам

https://habr.com/ru/articles/781496/

#cpp #programming

👉 @cpp_lib
👍31
Эффективное использование С++

Лекция 1. Библиотеки, утилиты, средства разработки, сборка (Эффективное использование С++)
Лекция 2. Работа с памятью. Утечки ресурсов. RAII, умные указатели (Эффективное использование С++)
Лекция 3. Move semantics, rvalue reference, perfect forwarding.
Лекция 4. Callbacks: lambda, bind & function.
Лекция 5. Multithreading in C++ (потоки, блокировки, задачи, атомарные операции, очереди сообщений)
Лекция 6. Обзор возможностей современных стандартов C++

источник

#cpp #programming

👉 @cpp_lib
🔥13👍32