170 похожих чатов

Всем привет! Объясните, как можно поступить в данной ситуации? "C6262 Функция

использует байты стека 18080. Рассмотрите возможность перемещения данных в кучу."
И есть вектор на которое данное предупреждение указывает:

std::vector<std::string>* words = new std::vector<std::string>({ "ПА", "ЦИ", "АС", .... и т.д.});

Я вроде как перенес данные в кучу как можете увидеть, но предупреждение все никак не пропадает.

А вот как я в дальнейшем этим вектором пользуюсь
if (!findWordsInGrid(grid, *words)) {
}

35 ответов

58 просмотров

Оберните код в теги: 3 символа ` до и после кода (в случае одиночной конструкции достаточно 1 ` с обеих сторон). Спасибо!

Е@%#, вектор через new.

Дмитрий 🎮
Е@%#, вектор через new.

было бы забавно увидеть через маллок

..?

попробуй через маллок, да

Компилятор указал строчку кода, на которую кинул предупреждение? В функцию передавай вектор по ссылке и работай с помощью итераторов.

может нужна nvidia 18080?

ладно, кроме шуток, попробуй вписать туда английские буквы, мб из-за кириллицы

zjoss- Автор вопроса
Stepan Zorin
ладно, кроме шуток, попробуй вписать туда английск...

Щас подожди перепишу 300 строк на английский

zjoss
Щас подожди перепишу 300 строк на английский

а если попробовать через другую ide или компилятор?

Вектор внутри хранит только указатель и пару счётчиков. Вне зависимости от количества элементов, он будет занимать на стеке очень мало. Так что new тут никак не могло решить проблему. у вас теперь просто указатель на указатель. Реальная проблема может быть на соседних строках. Либо в том как вы его инициализируете. Попробуйте убрать инициализацию и создать пустой вектор. Останется ошибка?

Покажи все остальные локальные переменные

zjoss- Автор вопроса
Алексей (lewa_j) Иванчуков
Вектор внутри хранит только указатель и пару счётч...

С пустым вектором варнинга не будет. Просто из-за того что в векторе порядком 300 строк стало, возник варнинг

zjoss- Автор вопроса
Stepan Zorin
а если одна строка?

Какой смысл в этом?)

zjoss
Какой смысл в этом?)

ну понять из-за содержимого такая проблема или из-за количества

zjoss
С пустым вектором варнинга не будет. Просто из-за ...

ясно. дело не в векторе а в огромном массиве который вы в него складываете при вызове функции

static const char* data[] {"ПА", "ЦИ", "АС" }; void test_stack() { std::vector<std::string> words(std::begin(data), std::end(data)); }

Полный код через пасту сюда скинь. Сам вектор не надо в динамической памяти создавать, это бред.

Вероятно, дело в {..}, который промежуточно будет висеть на стеке

насколько там много строк, где у тебя итд написано? попробуй уменьши и поменяй на латиницу

zjoss- Автор вопроса
Это я
насколько там много строк, где у тебя итд написано...

Мне нужно что бы на русском было. Уменьшение мне какжется не поможет

zjoss
Мне нужно что бы на русском было. Уменьшение мне к...

потом сделаешь на русском, сначала надо понять в чём дело. а дело либо в кодировке, либо слишком много текста

zjoss- Автор вопроса
Это я
потом сделаешь на русском, сначала надо понять в ч...

Ща, мне кажется я знаю в чем дело... Чуть позже отвечу

Это я
потом сделаешь на русском, сначала надо понять в ч...

Дело, скорее всего, в списке инициализации

Это не ошибка, тотал предупреждение

Ilya Zviagin
Я точно знаю в чем!

Ну, уже ответили все, кому не лень🫠

Michael
Ну, уже ответили все, кому не лень🫠

Мне это немного для другого надо...

Ilya Zviagin
Мне это немного для другого надо...

Настроение для очевидных ответов?

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
3
Карта сайта