Это ужасный UB.Вы выделяете char
массивы длиной 0
, а затем аккуратно вводите в них данные: переполнение буфера гарантировано!
Попробуйте использовать string
вместо char[]
.Он не только справляется с динамической длиной, но и освобождает вас от обязанности ручного управления памятью.
bool LinkedList::addArtist(){
cout << "Enter artist name: ";
string name;
getline (cin, name); // allows blanks in string and ignores \n
...
this->addAtBeginning(name, topStory, description);
cout << "made it out" << endl;
return true;
}
Если остальная часть кода использует char
массивы таким же образом, просторефакторинг всего на string
.Но если у вас есть много кода, который уже хорошо работает с массивами символов и действительно не хотите его трогать, тогда вы можете передать string x;
в качестве параметра const char*
с x.c_str()
.