Я использую VS 2019 с расширением VisualGDB для устройства STM32F303V C. У меня есть класс TlteCom
с массивом указателей на членов класса C ++ 17. Вот оно:
class TlteCom
{
public:
volatile uint16_t number=0;
volatile uint16_t paramNumber=0;
volatile char param1[20];
volatile char param2[20];
volatile char param3[8];
constexpr static uint8_t paramCount = 3;
volatile char *const paramlist[paramCount] = {(volatile char *)param1, (volatile char *)param2,
(volatile char*)param3};
volatile uint16_t paramlength[paramCount] = { 0, 0, 0 };
};
Я создаю объект класса как глобальную переменную следующим образом: TlteCom com;
Я не понимаю, почему com.paramlist
члены все равны нулю. если я создаю объект класса TlteCom
в стеке в функции main()
, то все в порядке: com.paramlist
имеет правильные значения адресов param1
, param2
, param3
. Итак, какова правильная инициализация массива pramlist
?