установить int структуры из буфера памяти

#c #struct #pointer-arithmetic

#c #структура #указатель-арифметика

Вопрос:

У меня скорее косметический вопрос:

У меня есть поток памяти (void *), который я использую в примере как «cur_ptr». Теперь я хочу прочитать первые байты в int («версия») структуры («a_struct»). Мой код, который работает:

 int *version;
version = cur_ptr;
a_struct->version = *version;
  

Как я могу написать это без вспомогательной версии указателя *?

Это не будет работать:

 a_struct->version = (int)*cur_ptr;
  

есть идеи?

Спасибо

Ответ №1:

Сначала приведите cur_ptr к int *, затем получите его значение 😉

 *((int*)cur_ptr);