Привет!
typedef struct {
int a;
int b;
} base;
typedef struct {
int c;
int d;
} S1;
void send(void * data, int dataSize)
{
char arr[sizeof(base)+dataSize];
base * b =(base*)arr;
b->a =1;
b->b =2;
memcpy(arr+sizeof(base), data, dataSize);
dummy(arr, sizeof(arr));
}
S1 s1;
s1.c =3;
s1.d =4;
send(&s1, sizeof(S1));
Как видите, в функции send в массив нужно поместить базовую структуру, потом структуру с данными, потом передать это на вход другой функции.
Аргументы и саму dummy менять нельзя (системная), стуктуру, S1 менять то же нельзя.
Напрягает постоянное копирование - data в массив и обратно - может быть есть идее, как улучшить этот участок в send?
Пока что из мыслей разве что глобально объявлять arr большего размера и при необходимости
S1 *s1 = (S1*)(arr+BASE_OFFSET);
Но крайне не хочется так делать.