Вы можете использовать reinterpret_cast
для этого, но имейте в виду, что вы делаете свой код очень специфичным для архитектуры. Использование reinterpret_cast
точно не гарантирует, что ваш код неверен, но это должны быть предупреждающие звонки.
Если вы хотите, учитывая массив шортов, создать массив байтов с одинаковыми значениями, вы, вероятно, захотите следующее:
void copy(char *to_byte_array, short const *from_short_array, std::size_t size)
{
for (std::size_t pos = 0; pos != size; ++pos)
{
to_byte_array[pos] = from_short_array[pos];
}
}
если вы используете reinterpret_cast, ваш короткий массив, содержащий, скажем, 20, 30, 40, будет выглядеть как массив символов, содержащий 0, 20, 0, 30, 0, 40 (или, возможно, 20, 0, 30, 0, 40 , 0, в зависимости от архитектуры).