2013-02-19 21 views
3

有沒有一個簡單的解釋,這個錯誤是什麼意思?錯誤:請求成員(也許你打算使用' - >'?),同時使用' - >'

error: request for member 'Attributes' in '* printerInfo', which is of pointer type 'PPRINTER_INFO_2 {aka _PRINTER_INFO_2A*}' (maybe you meant to use '->' ?)

PPRINTER_INFO_2* printerInfo = NULL; 

    void ChangedPrinter() 
    { 
     ... 
     DWORD attributesPrinterInfo; 

     printerInfo = (PPRINTER_INFO_2*) malloc(bufferSize); 

     attributesPrinterInfo = printerInfo->Attributes; // error 

     free(printerInfo); 
    } 

我在做什麼錯???

+0

哪種類型是'AttributesPrinterInfo'和'printerInfo-> Atteibutes'?在我看來,一個是指針,另一個是結構。 – 2013-02-19 19:02:51

+0

這兩個是相同類型的DWORD。 attributesPrinterInfo不是一個指針。 – msantiago 2013-02-19 19:09:54

回答

6

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 
相關問題