ошибка: запрос на членство (возможно, вы хотели использовать ‘- & gt;’?) при использовании ‘- & gt;’ уже

Есть ли простое объяснение того, что означает эта ошибка?

ошибка: запрос элемента ‘Атрибуты’ в ‘* 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);
}

Что я делаю неправильно???

3

Решение

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
9

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]