将大双精度转换为无符号 int 期间堆栈损坏
Stack corruption during conversion of large double to unsigned int
在运行Visual c ++的Windows机器上,我发现以下代码行似乎通过调用名为__dtoui3的东西(此调用后一堆字节更改。具体来说,似乎DBL_MAX的值在内存中的随机位置连续打印两次(
double temp = DBL_MAX;
unsigned int blissfullyUnaware = (unsigned int) temp;
但是,以下内容不会:
double temp = 0;
unsigned int blissfullyUnaware = (unsigned int) temp;
谁能阐明为什么会发生这种情况?
[conv.fpint]/1 浮点类型的 prvalue 可以转换为整数类型的 prvalue。转换蹦蹦跳跳;也就是说,小数部分被丢弃。如果截断的值不能 以目标类型表示。
强调我的。 DBL_MAX
大约在 2^1024 左右,而unsigned int
可能达到 2^32 的最高点。
相关文章:
- 将大双精度转换为无符号 int 期间堆栈损坏
- 程序终止时堆栈损坏?
- 为什么我的visual c++在堆栈损坏的情况下没有触发堆栈损坏错误
- 调试堆栈损坏问题
- 如何在退出时修复OpenGL堆栈损坏
- OpenCV C++:声明一个新变量会导致堆栈损坏
- 使用 sscanf 堆栈损坏
- C#到C代码P/调用多个std:字符串声明导致堆栈损坏
- 填充数组会导致数组周围的堆栈损坏
- 试图计算fibonacci(n)的变量“f”周围的堆栈损坏
- C++-如何在程序退出时找到堆/堆栈损坏的源
- 链表实现的堆栈损坏
- 可视化C++映射迭代和堆栈损坏
- 在 c++ 中 int 数组周围堆栈损坏错误
- 测试《毁灭战士3》堆栈实现时堆栈损坏
- 如何知道析构函数中的堆栈损坏来自何处
- 在c++中添加int数组时,试图找出堆栈损坏的问题
- 用错误的“”调用构造函数;这个“;指针.这是堆栈损坏吗
- GetCPUDescriptorHandleForHeapStart堆栈损坏
- memcpy之后堆栈损坏