gpt4 book ai didi

c++ - 加倍到 `unsigned long long` 会导致内存(堆栈?)损坏

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:49:01 26 4
gpt4 key购买 nike

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

#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 long 更改为 long long 甚至 unsigned long

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

我怀疑它与将 double 转换为 unsigned long long_stol2 有关

最佳答案

Submitted to Microsoft作为错误(已接受)

关于c++ - 加倍到 `unsigned long long` 会导致内存(堆栈?)损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13724684/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com