void mult(int number2, int argc, char** argv)
{
for (int i = 4; i < argc; i++) {
double number3 = atof(argv[i]);
double number2 = number2 * number3;
cout << number2 << endl;
}
}
我的输入是
./calc1 * 1 2 4 5 6
当我运行这个程序时,输出是:
2.07418e-317
4.14837e-317
1.65935e-316
8.29674e-316
4.97804e-315
我正在使用gedit。
答案 0 :(得分:1)
double number2 = number2 * number3;
您需要使用某个值初始化number2
,否则它将包含一个垃圾值,该值将与number3
相乘
将上述陈述分成两个陈述
double number2 = /*some value to initialize number2*/;
number2 *= number3; //now perform multiplication
此外,number2
作为参数传递给函数mult
,并且您还在number2
函数内声明了一个名为mult
的新变量。
答案 1 :(得分:0)
double number2 = number2 * number3;
您在初始化which causes undefined behavior之前访问number2
。