Записи передаются и обрабатываются блоками фиксированной длины. Каждая запись в блоке - массив unsigned char. Каждое поле записи представляет собой последовательность байт. Т.е. определённые подмножества байт интерпретируются как поля записи.
unsigned char ** block_of_records;
/* блок записей для их передачи между функциями */
#DEFINE BLOCK_REC_COUNT <number>
/* максимальное число число записей в блоке */