繁体   English   中英

未声明错误Nullptr

[英]Error Nullptr was not declared

因此,当我在学校对其进行编译时,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;
}

在这行上:

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

您指的是arrayhours ,但是您尚未声明这些内容。 代码的“学校版本”必须不同。

回覆。 nullptr错误:该错误已在2011年添加到C ++中。也许学校使用的是最新的编译器,但您家里有较旧的编译器。 如果将nullptr更改为0 ,就可以了。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM