Drucken Sie die Adresse eines struct-Objekts

Ich habe eine struct wie diese

typedef struct _somestruct {
    int a;
    int b;
}SOMESTRUCT,*LPSOMESTRUCT;

Erstelle ich ein Objekt für die struct und versuchen, es zu drucken die Adresse wie folgt

int main()
{
    LPSOMESTRUCT val = (LPSOMESTRUCT)malloc(sizeof(SOMESTRUCT));

    printf("0%x\n", val);

    return 0;
}

..und ich bekomme diese Warnung

Warnung C4313: 'printf' : '%x' in
format-string-Konflikte mit dem argument
1 des Typs 'LPSOMESTRUCT'

So, ich habe versucht zu werfen die Adresse int wie diese

printf("0%x\n", static_cast<int>(val));

Aber ich bekomme diese Fehlermeldung:

error C2440: 'static_cast' : kann nicht
konvertieren von 'LPSOMESTRUCT' in 'int'

Was vermisse ich hier? Wie, diese Warnung zu vermeiden?

Dank.

InformationsquelleAutor bdhar | 2010-06-14

Schreibe einen Kommentar