【问题标题】:Error Nullptr was not declared错误 Nullptr 未声明
【发布时间】:2014-04-07 03:44:23
【问题描述】:

所以 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;
}

【问题讨论】:

  • nullptr 应该在哪里声明?
  • nullptr 是 C++11 中的关键字
  • 简洁,谢谢@MattMcNabb
  • @MattMcNabb 我将其更改为 NULL 而不是 nullptr 这是正确的决定吗?
  • 是的,NULL 是一个扩展为 0 的宏。所以这也有效(只要您包含定义 NULL 的标头)。

标签: c++ cmd


【解决方案1】:

在这一行:

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

你指的是arrayhours,但是你还没有声明这些东西。代码的“学校版本”一定是不同的。

回复。 nullptr 错误:这是在 2011 年添加到 C++ 中的。也许学校有最新的编译器,但你家里有一个较旧的编译器。如果你把nullptr改成0就好了。

【讨论】:

  • 有各种版本;尝试g++ -v 并将输出与您在学校获得的结果进行比较。
  • 很好地将 Nullptr 更改为 0,修复了该错误,但其他两个仍然存在。我有导致错误的行的唯一原因是在 int main 的底部有一个可用于 cout 的变量,我可以再次调用该函数并删除一些行的所有麻烦吗?
  • 我不确定你的意思。您的代码显然期望 arrayhours 成为事物。
【解决方案2】:

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

您也可以在使用 g++ 编译时使用 -std=c++11 参数。 所以终端中的编译命令将是: g++“你的文件”-std=c++11

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-17
    • 2015-02-20
    • 1970-01-01
    • 2021-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多