Я дал массив структур:Безопасный массива структуры, как обычный поток байт
typedef struct sRawMsg{
int a;
}sRawMsg;
sRawMsg RawMsg[10];
Сначала запись структуры массива заполняется данными. Затем данные копируются в выходной буфер, заданный как 2D-массив.
// sending buffer which allocates memory for the array struct
static unsigned char sendingBuffer[10][sizeof(sRawMsg)];
for(int i = 0; i < 10; ++i)
{
sRawMsg* pMsg = &(RawMsg[i]);
// data is now stored in the struct array @ pos i
...
// data from the struct entry is now saved in the output sending buffer
memcopy(&(sendingBuffer[i][0]), pMsg, sizeof(sRawMsg));
}
Полученный выходной буфер передается как простой массив байтов по беспроводному соединению. Поскольку я новичок в программировании на языке C, я хочу спросить, существует ли более эффективный/элегантный/безопасный способ обработки данных массива struct.
Помимо ошибочного 'memcpy()', это выглядит хорошо. Вы можете оставить некоторые из круглых скобок и сократить (украсить) код. – EOF
Вы ищете «сериализацию». Не просто писать внутренние структуры данных, это хороший способ неприятностей. – Olaf