Есть мультизадачная структура и в одном из ее полей передается указатель на дополнительные данные для конкретного режима, в одном из таких режимов необходима легенда - заранее определенный массив byte[][2]. Режим по сути индексатор, а в массиве префиксы для отображения, собственно режиму необходим этот массив и общее количество элементов. Что-то мне подсказывает, что если до массива и получится достучаться, то количество элементов в нем мне надо знать заранее. Собственно, как это лучше организовать?
Еще раз суть: на руках инициализированный массив byte[][2], естественно с размером, поле структуры void*, куда можно либо весь массив этот положить, либо структуру-обертку какую, где-то в другом месте чисто по полю void* и со знанием всех типов необходимо получить оригинальный массив с размером.
Ответ хотелось бы увидеть с полноценным примером такого преобразования, так как в языке я новичок, синтаксис хромает, логика исходит из знания других языков.
Пример:
byte a1[][2] = {
{0, 0},
{0, 0}
};
byte a2[][2] = {
{0, 0},
{0, 0},
{0, 0}
};
void *p = &a1;
byte a[?][2] = *(byte[?][2] *)p;
// а главное размер массива?
void *p = &a2;
// .. два массива показывают лишь то, что способ получения оригинального массива должен быть универсальным