C++ vc.net:无法设置双变量';s值

C++ vc.net:无法设置双变量';s值,c++,visual-studio-2005,double,C++,Visual Studio 2005,Double,开发环境:VisualStudio2005 语言:c++ 运行此线路后: g_Frm->streamValue[0].dayAvgValue[0] = 1 我已经设置了g\u Frm->streamValue[0]。dayAvgValue[0]=1 (g_Frm->streamValue[0]。dayAvgValue[0]是双精度的类型) 但在watch(观察)窗口中,变量初始化时仍显示为-6.2774…e+066 需要帮助 两个想法: 检查您引用的构造中的变量是否已定义 i、 g_

开发环境:VisualStudio2005 语言:c++

运行此线路后:

g_Frm->streamValue[0].dayAvgValue[0] = 1
我已经设置了
g\u Frm->streamValue[0]。dayAvgValue[0]=1
g_Frm->streamValue[0]。dayAvgValue[0]是双精度的类型

但在watch(观察)窗口中,变量初始化时仍显示为-6.2774…e+066

需要帮助

两个想法:

  • 检查您引用的构造中的变量是否已定义
i、 g_Frm有效吗?g_Frm->streamValue是否为有效数组?g_Frm->streamValue[0]是否为有效数组和索引值?g_Frm->streamValue[0]->dayAvgValue数组是否有效

如果您试图获取的变量链中的任何变量未初始化,您将获得一些未定义的行为。确保已经为有效的索引值分配了内存和内存(一般来说,对于第0个元素,只要有元素就可以了)

  • 如果其他所有内容都有效,请检查是否有关于隐式类型转换的警告。“1”的32位或64位整数值与“1.0”的浮点/双精度数值相差很大。这意味着在int世界中,LSB(最低有效位)是1,但在float世界中,它表示一个非常小的分数值
谢谢你,马克西姆斯。我已经检查了变量,所有的都是有效的。甚至我也将变量设置为0或0.0。它仍然被关注为-6.2774…e+066你能发布相关数据结构的声明吗?如果我能看到全貌,我可能能提供更多帮助:-)。下面是声明:struct stream{CString endpoint_name;//int date[31];CString ipAddress;double dayAvgValue[31];//}streamValue[MAXSTREAMNUM],streamValue\u maxstreamlatency[MAXSTREAMNUM],streamValue\u avglatency[MAXSTREAMNUM],streamValue_抖动[MAXSTREAMNUM],streamValue_数据包丢失[MAXSTREAMNUM]//顺便说一句设置变量的值在线程中执行。这些代码在线程中运行。将streamValue移动到全局变量后,问题就解决了。它以前在大型机变量中。