Я знаю, как динамически выделить новый массив с malloc
.
Интересно, есть ли способ избежать этого в этой ситуации:
#define RX_BUFFER_SIZE 256
#define TX_BUFFER_SIZE 128
typedef struct MyBuffer
{
volatile uint8_t RX[RX_BUFFER_SIZE];
volatile uint8_t TX[TX_BUFFER_SIZE];
volatile uint16_t RX_Head;
volatile uint16_t RX_Tail;
volatile uint16_t TX_Head;
volatile uint16_t TX_Tail;
} MyBuffer_t;
typedef struct MyChannel
{
// other stuff
MyBuffer_t buffer;
} MyChannel_t;
затем в моем коде я создаю несколько переменных, подобных этой:
MyChannel_t ch1;
MyChannel_t ch2;
MyChannel_t ch3;
но я бы хотел установить разные размеры массивов для каждой переменной. Это нормально, чтобы выбрать из небольшого набора, т.е.
#define RX_BUFFER_SIZE_S 32
#define TX_BUFFER_SIZE_S 16
#define RX_BUFFER_SIZE_M 128
#define TX_BUFFER_SIZE_M 64
#define RX_BUFFER_SIZE_L 256
#define TX_BUFFER_SIZE_L 128
Есть ли способ достичь этого без , используя malloc
?