所以当我在学校编译它时,nullptr错误没有出现,我想我可以通过在编译时添加一行来修复它,是否有另一种方法可以摆脱它,另外两种错误我不明白为什么我会得到他们。有人能解释至少nullptr错误吗?
main.cpp:在函数' int main()':
错误:'数组'未在此范围内声明
错误:'小时'未在此范围内声明
错误:' nullptr'未在此范围内声明
int main()
{
float *studentData;
int numStudents;
int size;
int average = getAverage(*array, *hours);
int median = getMedian(hours);
int mode = getMode(hours);
cout << "How many students were surveyed? ";
cin >> numStudents;
studentData = makeArray(numStudents);
if (studentData == nullptr)
cout << "Error allocating memory.";
else
{
getFBData(studentData, numStudents);
selectionSort(studentData, numStudents);
for (int i = 0; i < numStudents; i++)
cout << *(studentData + i) << endl;
delete[] studentData;
}
getAverage(*array, hours);
printArray(size, hours);
getMedian(*array, hours);
getMode(*array, hours);
cout << "STATISTICS " << endl;
cout << "\n Mean: " << average;
cout << "\n Median: " << median;
cout << "\n Mode: " << mode;
return 0;
}
答案 0 :(得分:5)
在这一行:
int average = getAverage(*array, *hours);
你引用了array
和hours
,但是你尚未宣布这些事情。代码的“学校版本”必须不同。
重新。 nullptr
错误:2011年被添加到C ++中。也许学校有最新的编译器,但你家里有一个较旧的编译器。如果您将nullptr
更改为0
,那就没问题。
答案 1 :(得分:0)
解决此问题的最简单方法是将nullptr更改为0。尽管并非始终如此。但这可能是一个小的代码解决方案。
在使用g ++进行编译时,也可以使用-std = c ++ 11参数。 因此终端中的编译命令为: g ++“您的文件” -std = c ++ 11