Поэтому ошибка nullptr не появляется, когда я компилирую ее в школе, и я думаю, что смогу ее исправить, добавив строку, когда я ее скомпилирую, есть ли другой способ избавиться от нее, а две другие ошибки я не понимаю, почему я получаю их вообще. Может кто-нибудь объяснить хотя бы ошибку nullptr?
main.cpp: В функции 'int main()':
Ошибка: "массив" не был объявлен в этой области
Ошибка: "часы" не были объявлены в этой области
error: '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);
вы ссылаетесь на array
и hours
, однако вы еще не объявили об этом. "Школьная версия" кода должна быть другой.
Число рейнольдса ошибка nullptr
: это было добавлено в C++ в 2011 году. Возможно, в школе есть современные компиляторы, но у вас есть старший компилятор дома. Если вы измените nullptr
на 0
это будет нормально.
g++ -v
и сравните результат с тем, что вы получаете в школе.
Самый простой способ решить эту проблему - изменить nullptr на 0. Хотя не всегда это работает. Но это может быть небольшое решение кода.
nullptr
должен быть объявлен?nullptr
- это ключевое слово в C ++ 11