错误Nullptr未声明

时间:2014-04-07 03:44:23

标签: c++ cmd

所以当我在学校编译它时,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;
}

2 个答案:

答案 0 :(得分:5)

在这一行:

int average = getAverage(*array, *hours);

你引用了arrayhours,但是你尚未宣布这些事情。代码的“学校版本”必须不同。

重新。 nullptr错误:2011年被添加到C ++中。也许学校有最新的编译器,但你家里有一个较旧的编译器。如果您将nullptr更改为0,那就没问题。

答案 1 :(得分:0)

解决此问题的最简单方法是将nullptr更改为0。尽管并非始终如此。但这可能是一个小的代码解决方案。

在使用g ++进行编译时,也可以使用-std = c ++ 11参数。 因此终端中的编译命令为: g ++“您的文件” -std = c ++ 11