C++/Arduino хранит данные структуры в массивеC++

Программы на C++. Форум разработчиков
Anonymous
C++/Arduino хранит данные структуры в массиве

Сообщение Anonymous »

Я пишу класс для Raspberry Pi Pico (с использованием Arduino), который предполагает связь через Modbus. Я использую структуры для организации своих данных в данные идентификатора, данные о состоянии, данные измерений и т. д. Я хотел бы, чтобы эти структуры использовали ту же память, что и массив Modbus, чтобы избежать memcpy каждый раз, когда я изменяю переменную или получаю сообщение. Я могу сделать то же самое, используя массивы, следующим образом:
uint16_t modbusData[255];
uint16_t offset = 10; //target address for array

struct DataStruct_t {
uint16_t measCount = 3; //number of measurements
uint16_t sampCount = 5; //number of samples containing measCount measurements
uint16_t *data; //raw data of length measCount*sampCount
};

DataStruct_t dataStruct;

dataStruct.data = &modbusData[offset]; //data is stored directly in modbus registers and accessed via pointer

uint16_t measurement0 = data[0]; //equal to modbusData[offset]

Вместо этого я хотел бы сделать что-то эквивалентное следующему. В настоящее время это выдает мне ошибки типа, так как я не могу сделать указатель DataStruct_t точкой в ​​массиве uint16_t. Это возможно или я пытаюсь сделать какую-то глупость?
DataStruct_t *dataStruct;

dataStruct = &modbusData[offset];



Подробнее здесь: https://stackoverflow.com/questions/786 ... a-in-array

Вернуться в «C++»