разыменование указателя с перфорированным типом нарушит правила строгого алиасинга

У меня есть беззнаковый указатель char, который содержит структуру. Теперь я хочу сделать следующее

unsigned char buffer[24];

//code to fill the buffer with the relevant information.

int len = ntohs((record_t*)buffer->len);

, где структура record_t содержит поле с именем len. Я не могу сделать поэтому я получаю сообщение об ошибке.

error: request for member ‘len’ in something not a structure or union.

Затем я попытался:

int len = ntohs(((record_t*)buffer)->len);

, чтобы получить правильный приоритет оператора. Это дало мне предупреждение : разыменование указателя с типом символов нарушит строгий псевдоним rules .

затем я объявил

record_t *rec = null;

rec = (record_t*)

, что я здесь делаю не так?

13
задан ilya1725 6 February 2017 в 21:00
поделиться