Прежде всего я знаю, что могу использовать std::vector
вместо arrays
, но я хочу использовать массивы, потому что я хочу понять, как можно выделить память вне области объявления.
Я хочучтобы передать массив common_words в функцию, и в этой функции я хочу выделить немного памяти.
Когда я запускаю свой код, я получаю следующее:
завершение вызова после бросания экземпляра'std :: bad_alloc'
что (): std :: bad_alloc
Вот код:
void allocSpace(std::string *&common_words, int words_k)
{
common_words = new std::string[words_k];
}
int main(void)
{
int words_k = 0, comma_k = 0;
std::string *common_words;
std::cout << "Enter the words to be ignored separated by \',\': " << std::endl;
std::getline(std::cin, words_list);
comma_k = getCommaNumber(words_list); // returns 2 (const int value)
words_k = comma_k + 1;
allocSpace(common_words, words_k);
return 0;
}
Спасибо!