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

Why buffer is getting garbage value?

此代码来自我的项目。我无法理解 buffer 从哪里得到这个 ( 泛敭虑敭(10):) 与 swprintf_s.[=13 一起使用后的垃圾值=]

    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' -> '潓')。