Re[2]: как записать в массив char элемент размерности short
От: watchmaker  
Дата: 02.12.15 20:39
Оценка: 8 (3) +3
Здравствуйте, Carc, Вы писали:

C>Может все-так адрес взять элемента массива?

C>(unsigned short*)(& data[2]) = 65535;

Этого мало — нужно ещё и разыменовать:
*(unsigned short*)(&data[2]) = 65535;


А также не забыть, что вся эта конструкция легко может навернуться из-за невыровненной записи (в зависимости от архитектуры). И нужно либо самому следить за этим (где, например, alignas в декларации массива?), либо использовать единственный кросплатформенный в C/C++ способ записи в произвольное место в памяти — функцию memcpy.
Отредактировано 02.12.2015 20:41 watchmaker . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.