C++ 调试错误!运行时检查失败#3

C++ 调试错误!运行时检查失败#3,c++,visual-studio-2010,C++,Visual Studio 2010,我在运行程序时遇到此错误。它编译成功,但给了我一些关于未初始化变量的警告,我认为这些变量已初始化。我收到错误“调试错误!运行时检查失败#3-变量'sumMaleGPA'未经初始化就被使用。” #包括 #包括 #包括 使用名称空间std; void openFiles(ifstream和infle、ofstream和outFile) { 填充公开(“最终数据”); 对外开放(“最终日期”); 输出文件>显示点>>设置精度(2); 如果(!infle | |!outFile) { 性别>年级; 开关

我在运行程序时遇到此错误。它编译成功,但给了我一些关于未初始化变量的警告,我认为这些变量已初始化。我收到错误“调试错误!运行时检查失败#3-变量'sumMaleGPA'未经初始化就被使用。”

#包括
#包括
#包括
使用名称空间std;
void openFiles(ifstream和infle、ofstream和outFile)
{
填充公开(“最终数据”);
对外开放(“最终日期”);
输出文件>显示点>>设置精度(2);
如果(!infle | |!outFile)
{
性别>年级;
开关(性别)
{
案例“f”:(sumFemaleGPA=sumFemaleGPA+等级);
f++;
打破
案例‘m’:(sumMaleGPA=sumMaleGPA+等级);
m++;
打破
}
}
}
无效平均GPA(浮动平均GFGPA、浮动平均GMGPA、整数m、整数f、浮动总和平均GPA、浮动总和平均GPA)
{
avgmGPA=0;
avgfGPA=0;
avgfGPA=sumFemaleGPA/f;
avgmGPA=总GPA/m;
}
无效打印结果(浮动平均GFGPA、浮动平均GMGPA、流和流出文件)
{

cout您的
初始化
平均GPA
函数不正确

要在函数内部修改的任何参数应为:

实际上,
initialize()
函数实际上并没有初始化变量-因此,当您第一次尝试使用变量时,为什么会出现调试错误


现在,您正在按值传递。参数将被复制到函数中。然后,函数将修改本地副本,而不是传入的副本。

您的初始化函数没有初始化您认为是什么,因为您传入的参数是按值传入的。您需要查看

严格地说,这个错误是因为

int countFemale;
int countMale;
float sumFemaleGPA;
float sumMaleGPA;
float avgfGPA; 
float avgmGPA;
这些变量没有初始化为任何值

int countFemale = 0;
int countMale = 0;
float sumFemaleGPA = 0;
float sumMaleGPA = 0;
float avgfGPA = 0; 
float avgmGPA = 0;

也许为了增强您的理解,请将initialize函数的值初始化为1,并注意值不会从0更改。这是因为您正在将变量的副本传递给initialize函数。您希望使用
运算符传递对原始变量的引用。

为什么要这样做ink变量已经初始化了吗?你不认为它们应该内联初始化吗?是的,这也是一个选项。我只是想直接指出问题的根源。
int countFemale;
int countMale;
float sumFemaleGPA;
float sumMaleGPA;
float avgfGPA; 
float avgmGPA;
int countFemale = 0;
int countMale = 0;
float sumFemaleGPA = 0;
float sumMaleGPA = 0;
float avgfGPA = 0; 
float avgmGPA = 0;