我有以下char数组:
char hex[16] = "0x7fffa410c240"
如何将其转换为可以分配给另一个变量的数字地址。 重要的是我必须保持值的基数保持相同,即16(十六进制)。 提前谢谢。
答案 0 :(得分:6)
尝试返回unsigned long long
的函数strtoull
。
在Visual Studio上strtoull
不可用,但可能会使用_strtoui64
。
在评论中提及R..时,您应该使用sscanf(hex, "%p", ..)
或strtoumax
,其原型与strtoull
相同,但会返回uintmax_t
。
答案 1 :(得分:1)
void *ptr;
sscanf(hex, "%p", &ptr);