Я создал массив переменной длины в одной функции, однако мне нужно обратиться к этому массиву во второй функции. Проблема возникает, когда я помещаю объявление выше main(), поскольку его длина еще не определена, мой компилятор злится.Есть ли способ сделать массив переменной длины глобальным в C++?
Как обычно об этом идет речь?
EDIT:
Вот мой код до сих пор.
Мне нужно сделать имя массива [] midterm [] и final [] глобальным. Они все в student_input().
#include <iostream>
using namespace std ;
void student_input();
void student_output();
int i , ns ;
main(){
int width,height,mult;
cout << "Enter the number of students:" << endl;
cin >> ns;
i = 0 ;
while(i < ns){
i = i + 1 ;
student_input();
}
i = 0 ;
while(i < ns){
i = i + 1 ;
student_output();
}
system("pause");
}
void student_input() {
int si_i,si_midterm,si_final, midterm[ns + 1], final[ns + 1];
string si_name, name[ns + 1];
cout << endl << endl << "\t----- Student " << i << " -----" << endl << endl << endl;
cout << "Enter name for student " << i << ":\t"<< endl;
cin >> si_name;
name[i] = si_name ;
cout << "Enter midterm score for student " << i << ":\t"<< endl;
cin >> si_midterm;
midterm[i] = si_midterm ;
cout << "Enter final exam score for student " << i << ":\t"<< endl ;
cin >> si_final;
final[i] = si_final ;
cout << endl << endl;
si_i = 0 ;
while (si_i < 7){
si_i = si_i + 1;
cout << "Enter lab " << si_i <<" for student " << i << ":\t"<< endl;
}
cout << name[i] << endl << midterm[i] << endl<<final[i] << endl;
return;
}
void student_output() {
cout <<"hello! "<< endl;
return;
}
C++ не имеет массивов переменной длиной. Возможно, вы используете C? –
C99, но у меня возникает соблазн сказать, что он имеет в виду что-то другое. @Anteater: Можем ли мы увидеть образец кода, пожалуйста? – EboMike
«Это все еще неряшливо, так как я его разрабатываю». Во-первых, если вы правильно отформатируете свой код, даже при его разработке, это может значительно сократить время, затрачиваемое на отладку. Во-вторых, это показывает полное отсутствие уважения к людям здесь, которые хотят помочь ответить на ваш вопрос, когда вы не забираете две минуты, прежде чем размещать вопрос для форматирования кода и упрощения его чтения. –