5

以下代码有什么问题(崩溃):

#include <string>
#include <iostream>

void foo(std::string str, unsigned long long val)
{
    std::cout<< str<< " "<< val<< std::endl; // Crashes if commented as well
}

int main()
{
    double d = 30.0;
    foo("abc", d);
}

Visual Studio 2012/调试/Win32

它适用于 x64 以及如果我们更改unsigned long longlong long甚至unsigned long

此代码段崩溃。在其他情况下,函数参数的地址会发生变化。

我怀疑它与_stol2将转换doubleunsigned long long

4

1 回答 1

1

作为错误提交给 Microsoft (已接受)

于 2012-12-24T07:44:52.150 回答