小编jos*_*ste的帖子

C++为什么sprintf_s格式在与void指针一起使用时会改变?

这是工作原始代码:

// ...
unsigned __int64 num = 57;
sprintf_s(buffer, sizeof(buffer), "%llu", num);
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试将此部分提取到此函数中时:

void addBuffered(void** attributeValue, char* format)
{
    sprintf_s(buffer, sizeof(buffer), format, *attributeValue);
}
Run Code Online (Sandbox Code Playgroud)

致电:

addBuffered((void**)&num, "%d");
Run Code Online (Sandbox Code Playgroud)

我必须要改变的格式参数sprintf_s%llu%d得到正确的值.有人可以解释为什么会发生这种情况,如果参数的变化%d可能是个问题吗?谢谢!

c++ printf

4
推荐指数
1
解决办法
530
查看次数

标签 统计

c++ ×1

printf ×1