USB-разветвитель. Что нужно знать? Скорости и питание в USB 2.0 и 3.0. Эргономика и материалы.
🚀 Как ядро Linux создаёт пакеты переменной длины без лишних копирований
В C есть мощный паттерн — flexible array member. Вместо хранения заголовка и данных отдельно: header → отдельно payload → отдельно можно сделать один непрерывный блок памяти: +----------------+ | struct msg | | len | +----------------+ | payload data[] | +----------------+ Код: struct msg { uint32_t len; uint8_t data[]; }; struct msg *m = malloc(sizeof(*m) + n); Один malloc() → один блок памяти → один free(). Почему это любят в системном...