我正在寻找获取指针值并将其存储在字符串中的方法。你认为在C中有什么办法吗? (*按价值,我的意思是你从使用%p的printf得到的)。 非常感谢你的帮助!
*来自cplusplus.com的示例 - > printf(“%p”, a) - > b8000000
答案 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
的返回值,以查看目标数组是否实际足够长(请参阅文档)。