Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/164.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 瓦尔格林误差_C++_Linux_Visual C++_Valgrind - Fatal编程技术网

C++ 瓦尔格林误差

C++ 瓦尔格林误差,c++,linux,visual-c++,valgrind,C++,Linux,Visual C++,Valgrind,下面是我在Valgrind上运行代码时得到的消息 1) 未初始化的值是由堆栈分配创建的 ==16808==at 0x400EC1:init()(Hite.cpp:90) 2) 大小为8的读取无效 xmin=0.000000, xmax=1.000000, dx=0.010000, dt=0.000208, c=3.000000 ==2763== Conditional jump or move depends on uninitialised value(s) ==2763== at 0x

下面是我在Valgrind上运行代码时得到的消息

1) 未初始化的值是由堆栈分配创建的 ==16808==at 0x400EC1:init()(Hite.cpp:90)

2) 大小为8的读取无效

xmin=0.000000, xmax=1.000000, dx=0.010000, dt=0.000208, c=3.000000
==2763== Conditional jump or move depends on uninitialised value(s)
==2763==    at 0x3E5420E836: __ieee754_exp (in /lib64/libm-2.12.so)
==2763==    by 0x3E54224A81: exp (in /lib64/libm-2.12.so)
==2763==    by 0x400F88: init() (Hite.cpp:96)
==2763==    by 0x4010C8: main (Hite.cpp:114)
==2763==  Uninitialised value was created by a stack allocation
==2763==    at 0x400EC1: init() (Hite.cpp:90)
==2763==
==2763== Use of uninitialised value of size 8
==2763==    at 0x3E5420E8EC: __ieee754_exp (in /lib64/libm-2.12.so)
==2763==    by 0x3E54224A81: exp (in /lib64/libm-2.12.so)
==2763==    by 0x400F88: init() (Hite.cpp:96)
==2763==    by 0x4010C8: main (Hite.cpp:114)
==2763==  Uninitialised value was created by a stack allocation
==2763==    at 0x400EC1: init() (Hite.cpp:90)
我们如何克服这些错误

90 void init() {
 91         double xmin=0;
 92     double xavg = 0.5*(xmin+xmax);


int main(int argc,char **argv) {
112     printf("xmin=%f, xmax=%f, dx=%f, dt=%f, c=%f\n",
113                     xmin=0,xmax=0,dx=0,dt=0,c=0);
114     init()

)

查看代码会有所帮助,但从外观上看,您在堆栈上创建了一个未初始化的对象:

double val;
你应该把它改成

double val = double();


(根据大小,我假设为
double
;它也可能是
long
或其他类型的大小8)。

我在init()处收到第一个错误。user2588812:您能显示导致问题的代码吗?更新请检查主屏幕post@user2588812:根据错误报告,问题出现在第90行,该行似乎不是您引用的代码的一部分。对于由此带来的不便,我们深表歉意,添加了额外的编码。请在Hite周围显示行。cpp:90,请?请提供更多代码,还不足以说明问题所在。是否从函数返回值?很抱歉,添加了其他代码,看起来您需要显示所有init()函数。
double val(0);