Есть ли простое объяснение того, что означает эта ошибка?
ошибка: запрос элемента ‘Атрибуты’ в ‘* printerInfo’, который имеет
тип указателя ‘PPRINTER_INFO_2 {aka _PRINTER_INFO_2A *}’ (может быть, вы
предназначен для использования ‘->’?)
PPRINTER_INFO_2* printerInfo = NULL;
void ChangedPrinter()
{
...
DWORD attributesPrinterInfo;
printerInfo = (PPRINTER_INFO_2*) malloc(bufferSize);
attributesPrinterInfo = printerInfo->Attributes; // error
free(printerInfo);
}
Что я делаю неправильно???
PRINTER_INFO_2 структура определяется как:
typedef struct _PRINTER_INFO_2 {
// ...
} PRINTER_INFO_2, *PPRINTER_INFO_2;
так PPRINTER_INFO_2
это указатель на PRINTER_INFO_2
, Когда вы делаете
printerInfo = (PPRINTER_INFO_2*) malloc(bufferSize);
printerInfo
фактически становится указателем на указатель на PRINTER_INFO_2
, Я не уверен, было ли это намерением или просто ошибкой, но намеренно ли это PPRINTER_INFO_2*
тогда правильное использование:
(*printerInfo)->Attributes
Других решений пока нет …