Когда я скомпилирую его, он говорит, что ученики неинициализированы. В чем проблема?Почему программа дает сообщение об ошибке?
#include <iostream>
using namespace std;
int takeGrade1(int *grades) {
int i, noStudents;
cout << "No of students: ";
cin >> noStudents;
grades = new int[noStudents];
for (i = 0; i < noStudents; i++) {
cout << "Enter the grade: ";
cin >> grades[i];
}
return noStudents;
}
int main() {
int *studentGrades, no, i;
no = takeGrade1(studentGrades);
cout << endl << "Grades: " << endl;
for (i = 0; i < no; i++)
cout << studentGrades[i] << endl;
delete[]studentGrades;
return 0;
}
Вы проходите студенческие курсы по значению. Изменение его внутри takeGrade1() не меняет studentGrades в main. – drescherjm
Измените 'int takeGrade1 (int * grades)' на 'int takeGrade1 (int * & grades)' – drescherjm
почему downvotes? «это говорит ...» - не совсем точное описание ошибки, но получается картина. –