我有一個struct
這樣打印
typedef struct _somestruct {
int a;
int b;
}SOMESTRUCT,*LPSOMESTRUCT;
我創建的對象爲struct
,並試圖將其打印出來的地址,這樣
int main()
{
LPSOMESTRUCT val = (LPSOMESTRUCT)malloc(sizeof(SOMESTRUCT));
printf("0%x\n", val);
return 0;
}
..和我一個結構對象的地址得到這個警告
warning C4313: 'printf' : '%x' in format string conflicts with argument 1 of type 'LPSOMESTRUCT'
所以,我試圖把地址投給int
這樣
printf("0%x\n", static_cast<int>(val));
但我得到這個錯誤:
error C2440: 'static_cast' : cannot convert from 'LPSOMESTRUCT' to 'int'
缺少什麼我在這裏?如何避免此警告?
謝謝。