是记忆问题吗?C [代码块] [Windows]
Is the a memory issue? c++ [code blocks][Windows]
我的代码块可以编译下面的代码并运行良好:
unsigned long int a=100000000000;
我的代码块可以编译下面的代码,但是我的程序在我输入相同的数字(100000000000)后立即崩溃了:
unsigned long int a;
cin>>a;
如何修复?为什么拳头一个人正在工作!为什么不第二种情况?
如果我输入的数字大于最大无符号长int尺寸!那为什么第一个工作?
没有理由在这里崩溃。
初始化会引起我编译器的警告,因为无符号的长度值截断,并且读取尝试只是导致失败的读取,并且不会更改变量的值。
代码(在32位机器上):
#include <iostream>
#include <iomanip>
using std::cin;
using std::cout;
using std::endl;
int main() {
unsigned long int b=100000000000; // warning here
unsigned long int a = 0;
cin>>a;
cout << "b:" << b << "(" << std::hex << b << ")" << " a:" << std::dec << a << endl;
return 0;
}
输出如预期
b:1215752192(4876e800) a:0
因为作为我的架构上的ull 100000000000是0x174876e800,高阶字节已被截断...
相关文章:
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- 在Linux for Windows上编译C++代码时出错
- 在 Linux 群集上运行 Windows C++代码
- 如何分析在 Windows 上运行C++代码?
- g++ 9.2.1 (Linux) 会导致 seg 错误,但 Windows 上的代码块不会
- 如何在 vim (windows) 中编译和运行 c++ 代码
- Windows Toast 通知不适用于 MS CPP 示例代码
- 如何在Visual Studio 2017中编译Windows XP的代码
- 如何在 Windows API 中检测带有虚拟代码的非字母?
- C++代码在 Linux 上按预期工作,但在 Windows 上则不然
- 为什么我的C 代码在Linux上运行,而在Windows上不运行,是否有RAM内存的问题
- 如何在librdkafka中使用KAFKA的生产者API,并在Windows上使用C ++代码
- 我在Windows和Linux中得到了不同的结果!C++代码
- 有什么方法可以用本机C 代码替换Windows API计时器(settimer)
- 如何使用Visual Studio检测和获取Windows服务的代码覆盖率?
- Windows 控制台代码页 866
- cv:内存位置的异常 - 运行 openCV 代码 Visual Studio 2013 & Visual Studio 2017 - Windows 7
- 如何使用选择正确检测我是在Windows还是Linux中构建C 代码
- Visual Studio代码找不到g++.exe(Windows 10)
- 在c++中嵌入python代码(Windows + minGW + python 2.7.2 + Eclipse)