double类型的c++变量总是将其值更改为-9,25596e+061
C++ Variables of type double always change their values to -9,25596e+061
我有一个由直线组成的二维图形。
图形边缘的坐标来自double类型。坐标的值存储在一个名为Dot的对象中。
与一行相关的数据(是一行升序或降序,"a * X + b == Y"中的"a"answers"b"的值等)存储在一个名为line的对象中。Line类也有两个Dot对象,用于每行的两端。Line类也有2个函数/方法和一个构造函数。构造函数没有参数。第一个函数/方法没有参数,第二个函数/方法有参数。这两个函数/方法都是为了在必要时自动更改所有数据而创建的。
在启动程序后,我插入图形的边数和边的坐标。之后,程序必须在屏幕上写出每一行的所有内容。无论我插入什么坐标,第一个点的坐标都是X = -9,25596e+061和Y = -9,25596e+061。但其他点是我最初插入的坐标。
有一条线,我添加到一个向量的数量与图形的边的数量相同。之后,我开始改变图形边缘的坐标值(通过在运行的程序中插入值)。第三个动作是调用"创建"行的函数/方法(它计算关于行的其余数据)。程序的第四步是将每一行的数据写在屏幕上。
我一直在搜索算法和代码中的问题。我什么也没找到。
我使用Visual c++ 2010 Express。我也在使用iostream和vector库。
那么为什么第一个边的X和Y坐标将它们的值更改为-9,25596e+061?
OK,问题似乎在代码中。我还没有初始化。必须交换两个变量的位置来解决这个问题。多亏了Hans Passant和Baltram,我知道在哪里搜索这个问题:从任何类型的数组调用元素。
是啊,做这种事的时候一定要小心。
使用程序员计算器,输入0xcccccc…然后把它转换成十进制(以10为底的数)就会得到类似的结果。这总是意味着内存中有未初始化的值。在visual studio的内存窗口或调试器中,您可以右键单击监视窗口,并在弹出菜单中选择显示内存十六进制值的选项。有时,当我调试崩溃时,我这样做是为了检查原始浮点数据。
- ArduinoJson 6.15.2:JsonObject没有命名类型
- 防止主数据类型C++的隐式转换
- 大量序列中核苷酸类型的快速计数
- 如何从C++中的依赖类型中获得它所依赖的类型
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 是否可以初始化不可复制类型的成员变量(或基类)
- 如何获取std::result_of函数的返回类型
- 从父命名空间重载类型
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- 我想将一个对T类型的非常量左值引用绑定到一个T类型的临时值
- Openssl 1.1.1d无效使用不完整的类型"struct dsa_st"
- 访问者访问变体并返回不同类型时出错
- 在VS2010-VS2015下编译时,如何使用decltype作为较大类型表达式的LHS
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- C++ 雷神库 - 使用资源加载器类时出现问题(不命名类型)
- 模板元程序查找相似的连续类型名称
- 是否可以从int转换为enum类类型
- 构造函数正在调用一个使用当前类类型的函数
- 我应该使用什么来代替void作为变体中的替代类型之一
- double类型的c++变量总是将其值更改为-9,25596e+061