如何存储指针值(在C中)

时间:2016-06-27 23:20:27

标签: c pointers

我正在寻找获取指针值并将其存储在字符串中的方法。你认为在C中有什么办法吗? (*按价值,我的意思是你从使用%p的printf得到的)。 非常感谢你的帮助!

*来自cplusplus.com的示例 - > printf(“%p”, a) - > b8000000

1 个答案:

答案 0 :(得分:1)

使用sprintf格式的snprintf"%p"

例如:

char s[40];
int obj = 42;
int *ptr = &obj;

snprintf(s, sizeof s, "%p", (void*)ptr);

需要转换为void*,因为它是"%p"格式说明符所期望的类型。

输出的宽度是系统特定的,但它不可能超过40个字符。

您可以检查snprintf的返回值,以查看目标数组是否实际足够长(请参阅文档)。