我正在尝试将诸如“0x7ffd01767a60”之类的字符串转换为十六进制,以便可以比较指针。不确定这是否是最好的决定。
我正在这样做:
char *address = "0x7ffd01767a60";
strtol(address,NULL,16);
printf("%lp",address);
我得到了这个:0x7ffd01764120
编辑:似乎我正在打印忽略函数返回的字符串地址。谢谢詹斯!和施伦克。
解决了!这就是我所做的
char *address = "0x7ffd01767a60";
void *p;
unsigned long int address_hex = strtol(address,NULL,16);
p = (void*) address_hex;
printf("%p",p);
printf 打印相同的内存地址。