У меня есть структура, которая включает в себя поле string
. Я создаю массив этих структур, а затем я хочу передать их функции (по ссылке). Все работает отлично, когда я комментирую поле string
, но если я не запускаю программу, она перестает работать. Я не могу найти ответ на этот везде ..Невозможно работать с массивом структур, которые содержат строку C++
Вот код (я уменьшил его, чтобы показывать только вопрос):
struct student {
int a;
int b;
string name[20];
char status;
};
void operation(student the_arr[1],int number_of_students) {
delete[] the_arr;
the_arr = new student[3];
for(int i = 0; i<3; i++) {
the_arr[i].a = i+5;
the_arr[i].b = i+4;
}
}
int main() {
student *abc;
abc = new student[0];
operation(abc, 0);
system("pause");
return 0;
}
мне нужен массив быть динамичным, так что я могу изменить его размер, когда мне нужно.
Вам следует использовать вектор. – chris
Да, используйте контейнер C++, такой как вектор. –
'new student [0]', 'void operation (student the_arr [1], ...': WAT? – us2012