0

开发环境:Visual Studio 2005 语言:c++

运行此行后:

g_Frm->streamValue[0].dayAvgValue[0] = 1

我已经设置g_Frm->streamValue[0].dayAvgValue[0] = 1;
( g_Frm->streamValue[0].dayAvgValue[0] is type of double)

但是在监视窗口中,它仍然显示为-6.2774...e+066,因为变量被初始化了。

需要帮忙!

4

1 回答 1

0

两个想法:

  • 检查您所引用的构造中的变量是否已定义。

即 g_Frm 是否有效?g_Frm->streamValue 是一个有效的数组吗?g_Frm->streamValue[0] 是有效的数组和索引值吗?g_Frm->streamValue[0]->dayAvgValue 是有效数组吗?

如果您尝试获取的变量链中的任何变量未初始化,您将获得一些未定义的行为。确保您已经分配了内存和有效的索引值(通常,在第 0 个元素的情况下,只要那里有元素,您就可能很好)。

  • 如果其他一切都有效,请检查是否有关于隐式类型转换的警告。“1”的 32 位或 64 位整数值与“1.0”的浮点/双精度值有很大不同。这意味着在 int 世界中,您的 LSB(最低有效位)为 1,但在浮点世界中,它代表一个极小的小数值。
于 2013-02-26T02:46:09.073 回答