如何将存储在char数组中的地址转换为实际地址?

时间:2011-09-22 12:12:01

标签: c

我有以下char数组:

char hex[16] = "0x7fffa410c240"

如何将其转换为可以分配给另一个变量的数字地址。 重要的是我必须保持值的基数保持相同,即16(十六进制)。 提前谢谢。

2 个答案:

答案 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);