我有一个字符串
char value[16]="ffffffffc06e91"
我需要检索以字符串形式存储在变量值中的地址。
即..
void * ptr = NULL;
somefunction(value,ptr); // ptr = 0xffffffffc06e91
是否有这样做的功能或方法?
谢谢
答案 0 :(得分:1)
请勿使用atoi()
; int
值可能不足以存储该值,并且该函数不适用于十六进制字符串。
改为使用strtoll()
:
void *ptr = (void*)strtoll("ffffffffc06e91", NULL, 16);
答案 1 :(得分:0)
我们可以使用strtol来完成此任务,这要感谢@Bwebb指出atoi导致了我的strtol。
void * ptr = (void*)(long)strtol(value,NULL,16);