c++ - 为什么缓冲区获得垃圾值?

标签 c++ visual-studio garbage widestring

此代码来 self 的项目。在与 swprintf_s 一起使用后,我无法理解 buffer 从哪里得到这个 (泛滥推理(10):) 垃圾值。

    const char* m_filename = "Somename";
    unsigned m_line = 10;
    wchar_t buffer[256];

    ZeroMemory(buffer, 256);

    auto count = swprintf_s(buffer, L"%S(%d): ",
        m_filename, m_line);

我使用的是 Visual Studio 2015 预览版。

最佳答案

swprintf_s 期望 wchar_t 字符串作为 '%S' 参数,而您传递的是 char 字符串,因此将两个字符视为单个字符wchar_t(即:'So' -> '潓')。

关于c++ - 为什么缓冲区获得垃圾值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28622501/

相关文章:

c - 奇怪的双指针更新内存位置

c++ - 从 Streambuffer 转换的字符串中的垃圾打印

c++ - 我不明白 find 函数在 C++ 中是如何工作的

c++ - CUDA 应用程序 .exe 已停止工作

C++ 动态数组和指针

javascript - 成功删除消息未被调用

visual-studio-2010 - 如何制作独立的 Visual Studio 应用程序,可以在任何系统上运行而无需 Visual Studio

c++ - 我应该使用什么来代替 sscanf?

c++ - 无法将Visual Studio解决方案升级到2013

c++ - vector push_back 的垃圾值