Я использую реализацию протокола UDP, который отправляет сокет как символ *.Также я определил структуру, чтобы соответствовать размеру заголовка и тела сокета.Так же как:
#pragma once
typedef struct WHEATHER_STRUCT{
uint8_t packetID; // 9
uint16_t packetSize; // 11
uint8_t subpacketID; // 0
uint16_t subpacketOffset; // 0
uint8_t reserved; // 0
float cloudLayerAltitude; // 25000
}
Я проверил размер этого сокета, и он составляет 11 байтов.
Я совершенствую свои знания об указателях и пытаюсь получить доступ к этим переменным, используя указатель со смещением.Вот пример:
Начальная позиция структуры: & (this-> wheather_struct [0])
Я пытался использовать этот адрес памяти, чтобы получить значениепеременной packageID.Но это не работает для меня.
После получения этого решения я определю смещение для доступа к следующему значению в следующем предложении:
&(this->wheather_struct[0]) + 1 // Memory address of the next byte?
У меня есть адрес памяти первого элементаструктура, но я не могу получить значение этого.Не могли бы вы помочь мне, пожалуйста?
Если бы вы могли дать мне пример для доступа к значению cloudLayerAltitude с использованием указателей со смещением, это было бы здорово.Спасибо.