#c 98
#c 98
Вопрос:
Я создал структуру со ссылкой на вектор, и у меня возникли проблемы с присвоением ей после того, как я создал массив структур.
Это моя структура:
struct name{
std::vector<Student> amp;A;
int a;
int b;
};
В моем основном я создал вектор типа класса Student и присвоил значения вектору, который я назвал StudentVector . Я пытаюсь объявить массив имени структуры, который содержит ссылку на мой вектор StudentVector:
void main(){
std::vector <Student> StudentVector;
....
....
....
name data[5];
for (int i=0;i<5;i ){
data[i].A = StudentVector;
}
Когда я делаю это, он компилируется, но при запуске моего кода я получаю ошибку сегментации.
Заранее благодарю вас за помощь!
Ответ №1:
Он не должен компилироваться, потому что нет способа инициализировать ссылку ‘A’. Если вам действительно нужно сделать это таким образом, замените ссылку на указатель:
struct name {
std::vector<Student> *A;
int a;
int b;
};
std::vector<Student> StudentVector;
for (int i = 0; i < 5; i ) {
data[i].A = amp;StudentVector;
}
Но было бы разумно полностью избежать этого.
Комментарии:
1. Большое вам спасибо!