Преобразование байтового массива в многомерный массив - PullRequest
0 голосов
/ 26 января 2020

У меня есть байтовый массив, сериализованный из потока char * Buf , который указывает на массив из 64 байтов.

I wi sh для приведения его к входному параметру функции Foo (char [4] [16] Buf) без копирования всех байтов.

Легко ли это сделать?

Ответы [ 2 ]

0 голосов
/ 26 января 2020

Я нашел ответ по ссылке, данной Майклом Чурдакисом

*reinterpret_cast<char(*)[4][16]>(Buf)
0 голосов
/ 26 января 2020

Вы можете привести любой буфер к любому массиву, который вам нужен:

void Foo(char(&buf)[4][16])
{
}

int main()
{
    char* buf = new char[64];
    Foo((char(&)[4][16])(buf));
    delete[] buf;
    return 0;
}
...