msa*_*ago 3 c++ syntax pointers compiler-errors dynamic-allocation
这个错误意味着什么?
错误:请求'*printerInfo'中的成员'Attributes',其指针类型为'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);
}
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么???
PRINTER_INFO_2结构定义为:
typedef struct _PRINTER_INFO_2 {
// ...
} PRINTER_INFO_2, *PPRINTER_INFO_2;
Run Code Online (Sandbox Code Playgroud)
所以PPRINTER_INFO_2是指针PRINTER_INFO_2.当你这样做
printerInfo = (PPRINTER_INFO_2*) malloc(bufferSize);
Run Code Online (Sandbox Code Playgroud)
printerInfo实际上成为指向指针的指针PRINTER_INFO_2.我不确定这是出于意图还是只是一个错误,但是如果它的意图是PPRINTER_INFO_2*正确的用法是:
(*printerInfo)->Attributes
Run Code Online (Sandbox Code Playgroud)