использует байты стека 18080. Рассмотрите возможность перемещения данных в кучу."
И есть вектор на которое данное предупреждение указывает:
std::vector<std::string>* words = new std::vector<std::string>({ "ПА", "ЦИ", "АС", .... и т.д.});
Я вроде как перенес данные в кучу как можете увидеть, но предупреждение все никак не пропадает.
А вот как я в дальнейшем этим вектором пользуюсь
if (!findWordsInGrid(grid, *words)) {
}
Оберните код в теги: 3 символа ` до и после кода (в случае одиночной конструкции достаточно 1 ` с обеих сторон). Спасибо!
Е@%#, вектор через new.
было бы забавно увидеть через маллок
..?
для сердца
попробуй через маллок, да
Компилятор указал строчку кода, на которую кинул предупреждение? В функцию передавай вектор по ссылке и работай с помощью итераторов.
Ну так так оно и сделано
может нужна nvidia 18080?
ладно, кроме шуток, попробуй вписать туда английские буквы, мб из-за кириллицы
Щас подожди перепишу 300 строк на английский
да, давай, жду
а если попробовать через другую ide или компилятор?
Вектор внутри хранит только указатель и пару счётчиков. Вне зависимости от количества элементов, он будет занимать на стеке очень мало. Так что new тут никак не могло решить проблему. у вас теперь просто указатель на указатель. Реальная проблема может быть на соседних строках. Либо в том как вы его инициализируете. Попробуйте убрать инициализацию и создать пустой вектор. Останется ошибка?
Покажи все остальные локальные переменные
С пустым вектором варнинга не будет. Просто из-за того что в векторе порядком 300 строк стало, возник варнинг
а если одна строка?
Какой смысл в этом?)
ну понять из-за содержимого такая проблема или из-за количества
ясно. дело не в векторе а в огромном массиве который вы в него складываете при вызове функции
static const char* data[] {"ПА", "ЦИ", "АС" }; void test_stack() { std::vector<std::string> words(std::begin(data), std::end(data)); }
Полный код через пасту сюда скинь. Сам вектор не надо в динамической памяти создавать, это бред.
Вероятно, дело в {..}, который промежуточно будет висеть на стеке
насколько там много строк, где у тебя итд написано? попробуй уменьши и поменяй на латиницу
Мне нужно что бы на русском было. Уменьшение мне какжется не поможет
потом сделаешь на русском, сначала надо понять в чём дело. а дело либо в кодировке, либо слишком много текста
Ща, мне кажется я знаю в чем дело... Чуть позже отвечу
Дело, скорее всего, в списке инициализации
Это не ошибка, тотал предупреждение
Я точно знаю в чем!
Ну, уже ответили все, кому не лень🫠
Мне это немного для другого надо...
Настроение для очевидных ответов?
Обсуждают сегодня