我有一个像这样的
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;
}
...然后我收到了这个警告
警告 C4313: 'printf' : 格式字符串中的 '%x' 与类型为 'LPSOMESTRUCT' 的第 1 个参数存在冲突
因此,我尝试将地址强制转换为 int
,像这样
printf("0%x\n", static_cast<int>(val));
但我收到了这个错误:
错误 C2440:'static_cast':无法将“LPSOMESTRUCT”转换为“int”
我错过了什么?如何避免此警告?
谢谢。