Имется структура:
struct _nvr
{
char ip_nvr[50];
char log[50];
char passwd[50];
char ip_cam[20][50];
char id_cam[16][10];
LONG lUserID;
NET_DVR_DEVICEINFO_V30 struDeviceInfo; //the info get when login
NET_DVR_WORKSTATE_V40 *pStruWorkStateV40;
NET_DVR_GETWORKSTATE_COND struWorkStateCond;
DWORD dwList;
int flag;
};
_nvr nvr[30] = {};
*pStruWorkStateV40? Можно ли ее проинициализировать в структуре:
NET_DVR_WORKSTATE_V40 *pStruWorkStateV40 = new NET_DVR_WORKSTATE_V40;
Если к самому значению - то
*nvr[i].pStruWorkStateV40
Если к какому-то полю NET_DVR_WORKSTATE_V40 - то
nvr[i].pStruWorkStateV40->field_name
К указателям в структурах обращаются так же как и к любым другим членам данных:
имя_экземпляра.имя_поля_данных
Это базовая информация, которая даётся в самом начале любого учебника/курса по языку. Без таких знаний просто невозможно создать что-то минимально осмысленное.
Можно ли ее проинициализировать в структуре?
Инициализация нестатического члена в момент определения структуры возможна в c++, начиная с c++11:
struct S {
T* var = new T();
};
В c и более ранних c++ стандартах такая инициализация невозможна. Требуется создавать конструктор (с++) или делать это в некоторой функции инициализации (с).
У вас объявлен массив структур
_nvr nvr[30] = {};
Чтобы обратиться к члену данных какого-либо элемента этого массива, вы должны выбрать элемент массива с помощью оператора индексирования. Например,
nvr[i]
где i - это некоторое значение индекса в диапазоне [0, 30), и применить оператор обращения к члену данных класса .. Например,
nvr[i].pStruWorkStateV40
Теперь вы этому члену данных можете присвоить некоторое значение. Например,
nvr[i].pStruWorkStateV40 = new NET_DVR_WORKSTATE_V40;
В этом случае член данных, представляющий из себя указатель и заданный выражением nvr[i].pStruWorkStateV40, будет указывать на выделенный памяти объект.
Чтобы присвоить некоторое значение этому объекту, вы должны разыменовать этот указатель, используя оператор разыменования * . Например,
*nvr[i].pStruWorkStateV40 = SomeValue;
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости