Структуры

Структуры это просто особый тип указателей. Наверное можно позволить себе сказать даже , что это указатель на указатель.


typedef struct 
{
  size_t size;
  uint16_t addr;
}STRUCT_NAME;

навигация по указателям

Точно также как и навигация по простым типам данных. Это реально очень удобно.

STRUCT_NAME arr[10];

for(uint32_t ii=0; ii < sizeof(arr); ii++
{
  *(STRUCT_NAME *)(arr+ii).size =123;
  *(STRUCT_NAME *)(arr+ii).addr =ii+4;
}

Можете передавать указатели на структуры в функции и там работать с ними.