Как именно гарантируется выделения n байт памяти библиотекой stdint.h?

Когда мы используем библиотеку stdint.h, для выделения n байт памяти мы можем использовать тип данных uint8_t, который гарантирует размер в 8 бит (1 байт), а также другие типы с фиксированным размером, такие как uint16_t, uint32_t и т. д., которые гарантируют размер в соответствии с их названием (16 бит, 32 бит и т. д.).

Таким образом, для выделения n байт памяти с использованием stdint.h можно использовать массив или указатель на один из типов данных, например, uint8_t buffer[n]; или uint8_t *ptr = (uint8_t*)malloc(n);.

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