Я думаю, что ошибка связана с моей слишком большой строкой. Если функция работала правильно, я сомневаюсь, что я был бы где-то рядом с максимальным размером строки (разве это действительно является проблемой? Я сомневаюсь в этом, потому что это для назначения HW, и нам нужно вернуть output
с текстом песни). Что выдает эту ошибку? Насколько большой может быть строка?
Ошибка:
terminate called after throwing an instance of 'std::length_error'
what(): basic_string::_S_create
Aborted (core dumped)
Функция:
string generateSong(string list[], int num)
{
string output;
for(int count = 0; count <= num; count++)
output += list[count] + " bone connected to the "
+ list[count + 1] + " bone\n";
return output;
}
Содержимое list[]
:
string list[9] =
{
"toe",
"foot",
"leg",
"knee",
"hip",
"back",
"neck",
"jaw",
"head"
};
num
равно 9. Действительно ли output
становится слишком большим? Все компилируется нормально (с использованием g ++).