|
1 / 3 / 0
Регистрация: 25.04.2015
Сообщений: 474
|
|||||||||||
Потенциальная утечка памяти15.03.2026, 13:57. Показов 11028. Ответов 118
Метки нет (Все метки)
Здравствуйте! Помогаю тут знакомому делать лабораторную по программированию на С++. Делаю в Qt так как начал его изучать.
Задание: В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) максимальный по модулю элемент массива;[1] 2) сумму элементов массива, расположенных между первым и вторым положительными элементами. Преобразовать массив таким образом, чтобы элементы, равные нулю, располагались после всех остальных. Вот, что у меня получилось:
И если можно подскажите как в этом коде сделать ЗАЩИТУ если в консоли будет набрано не правильное количество элементов.
0
|
|||||||||||
| 15.03.2026, 13:57 | |
|
Ответы с готовыми решениями:
118
Утечка памяти Шаблоны STL & утечка памяти. Утечка памяти |
|
1071 / 992 / 153
Регистрация: 10.08.2015
Сообщений: 5,447
|
||
| 18.03.2026, 11:25 | ||
|
У тебя задача в 2 действия. но ты решил даже тут читернуть. в итоге у тебя количество ненужных циклов сильно больше нуля. программа неоптимизированная и медленная. так не то что на плюсах, даже на си не пишут.
0
|
||
|
Заблокирован
|
|||||||||||||
| 18.03.2026, 14:50 | |||||||||||||
|
Ты ввел всех в заблуждение своими постами и даже кодом из первого поста, в котором ты используешь Qt. На 59-м сообщении оказалось, что Qt тебе и не нужен, а ты имел в виду Qt Creator ![]() Итак, тебе просто нужно написать консольное приложение на С++, без Qt. Судя по твоему коду из первого поста, при создании проекта в Qt Creator ты ошибочно выбрал в качестве типа проекта "Qt Console Application". Вместо этого ты должен был выбрать "Non-Qt Project / Plain C++ Application". А что касается отображения кириллицы в Qt Creator, то там своя специфика. Я вообще советую в настройках проектах, в Run Settings выбрать Run in terminal, так более-менее будет норм, поскольку стандартное окно ввода/вывода слабенькое, а во втором случае, когда выбрано Run in terminal, включается режим эмуляции системного терминала во встроенном окне. А если хочется чтобы вызывалось прям само черное системное окно терминала, то кроме включения в настройках проекта Run in terminal, еще нужно в настройках IDE убрать галочку Use internal terminal.
ввод данных с клавы и кириллицу сам добавишь, выше я уже показал, как это делать. Еще, в условии сказано "Преобразовать массив таким образом, чтобы элементы, равные нулю, располагались после всех остальных.", но не сказано, должен ли соблюдаться изначальный порядок ненулевых чисел? Я соблюдаю этот порядок, но если порядок не нужен, замени std::stable_partition на std::partition.
0
|
|||||||||||||
| 18.03.2026, 16:22 | |||
Спорный вопрос, но во всяком случае юзать эти ф-ции можно тому кто уже умеет обойтись без них. Иначе получается такая "обезьяна без кармана" Особенно последний пункт (нули в конец), его необходимо уметь делать рукамиКстати структура решения та же что и в стартовом посте - последовательно/независимо решаются 3 задачи в 3 циклах. Такой порядок необязателен, можно все сделать в одном цикле. Что лучше - ну на такой задании без разницы, просто иметь ввиду что есть альтернатива
0
|
|||
|
1071 / 992 / 153
Регистрация: 10.08.2015
Сообщений: 5,447
|
|
| 18.03.2026, 16:24 | |
|
0
|
|
|
Заблокирован
|
||||
| 18.03.2026, 16:50 | ||||
|
Преимущества моего кода: - читаемость, сразу видно, что там происходит - разделение ответственности (твой код же хрупкий - изменение одной логики легко сломает другую). У меня все можно быстро вынести в разные функции. - реализации из STL могут использовать векторизацию и другие оптимизации компилятора. К тому же, я даже могу быстро заменить accumulate на reduce и прикрутить execution. - переиспользуемость: лямбды в моем варианте легко вынести, переиспользовать, протестировать отдельно. У тебя же все намертво вшито в цикл.
0
|
||||
|
1 / 3 / 0
Регистрация: 25.04.2015
Сообщений: 474
|
|
| 18.03.2026, 17:22 [ТС] | |
|
да QtCreator
Добавлено через 24 минуты Да последний код Royal_X это что то, я думаю препод у студента сам охренет от него. Мне кажется это всё равно, что в начальных классах на уроке математике рассказывать про интегралы
0
|
|
|
Заблокирован
|
||
| 18.03.2026, 17:29 | ||
|
0
|
||
|
1 / 3 / 0
Регистрация: 25.04.2015
Сообщений: 474
|
|
| 18.03.2026, 17:31 [ТС] | |
|
Мне понравилось, специально посмотрел, что за функции.
0
|
|
|
Заблокирован
|
|||
| 18.03.2026, 17:39 | |||
|
Добавлено через 5 минут Qt6Core.dll повысит размер почти на 10 МБ
0
|
|||
|
фрилансер
6506 / 5757 / 1134
Регистрация: 11.10.2019
Сообщений: 15,405
|
||
| 18.03.2026, 17:45 | ||
|
А циклы провоцируют смешивать ответственность - например, сразу заполнить массив и вывести на экран. А это обычно - плохая архитектура или снижение производительности
1
|
||
| 18.03.2026, 19:22 | ||||||||||||
![]()
![]()
0
|
||||||||||||
|
1 / 3 / 0
Регистрация: 25.04.2015
Сообщений: 474
|
|
| 18.03.2026, 21:06 [ТС] | |
|
Ребят, ребят а Вы вообще в курсе, что чат переместили в ветку С++ для начинающих и я уже почти страницу модератору отправил на удаление
0
|
|
|
392 / 337 / 66
Регистрация: 14.10.2014
Сообщений: 1,538
|
||
| 18.03.2026, 22:03 | ||
|
GAZot, ежели решил
P.S. Сорри, если другие участники на это уже указывали. Лень читать предыдущие посты - так что всем предлагаю меня понять и простить
0
|
||
|
Заблокирован
|
||||||||
| 18.03.2026, 23:12 | ||||||||
|
Раз пошла такая пьянка, то и я поговнокодю и пофлудю.
Задача выполненная с помощью общих алгоритмов легко пишется, читается и редактируется. Они проверены и работоспособны, в отличие от своего сишкокодерства. Есть моменты когда пишешь низкоуровневый код с указателями, выделениями памяти и прочим. Но это редкие случаи. Преждевременная оптимизация - большой порок. И в контексте С++ приносит больше вреда чем пользы. Вот в моём коде(ниже под спойлером) можно оптимизировать решение второй задачи, но нужно ли? Уже ближе к реальному коду. Но реальный код не будет состоять из трёх задач. И поэтому будет систематизирован и выделен в фрагменты кода отвечающие за отдельные задачи, включая ввод, фильтр его содержимого и обработку ошибок. Кликните здесь для просмотра всего текста
https://onlinegdb.com/Gd-uBfRGpg Теперь про ввод данных. Стандартные потоки - это обобщенный подход к обработки ввода-вывода. И задача/желание ТС, иметь контроль над вводом(а именно ввод несколько значений с контролем на их количество, больше/меньше ожидаемого), выходит за возможности семантики стандартных потоков. Поэтому, необходимую логику, разбивают на более мелкие задачи и используют те же средства. Если это нужно, были уже примеры/варианты и от меня и от Royal_X. Теперь у меня вопрос к душнилам-тошнилам в этой теме. Правда ли для обучающего процесса, нужно каждую задачу писать в таком стиле? Да ещё и в классы это обернуть(потому что это С++)? Или для ознакомления с чем, достаточно это что-то и только его использовать? [риторические вопросы] И ещё сомнительно что я все случаи учёл, особенно при вводе. А std::cin - особый поток со своим поведением. Хоть у него и может быть случай eof(Ctrl+D для емулятора терминала onlinegdb.com, вероятно выполняется код на unix системе)), но на практике этого мало кто знает и использует. Поэтому это учитывают и соответственно организовывают интерактивность с пользователем. p.s. Для ТС. 99,99% всего кода на С++ - это базовые общие инструменты, особенно стандартные. И это касается практически всех библиотек и фреймворков. На все случаи жизни всего не сделать и это естественно. Поэтому каждая команда делает инструменты под себя и свои задачи. Стандартные потоки не для всяких задач одинаково полезные. Но на их основе можно многое сделать. Так что при обучающем процессе, свои "хотелки" нужно держать в узде, ну или быть готовым эпически их преодолевать усложняя на ровном месте задачу и код. А тема показательная, таки ![]() Добавлено через 45 секунд Recrut_rf, да норм всё, можно курить здесь ![]() Добавлено через 15 минут Royal_X, кстати, твой последний exe-ик, на Qt, консольный. Нормально отображает русские символы на Win10 x64. Но вот на ниже системах, я в этом сомневаюсь. И как по заказу, всегда найдется какая то "зверушка"[цензура] на virustotal, которая обнаружит там угрозу)
1
|
||||||||
|
638 / 396 / 68
Регистрация: 09.03.2016
Сообщений: 4,371
|
|||||||||||
| 19.03.2026, 00:48 | |||||||||||
0
|
|||||||||||
|
Заблокирован
|
|||||||
| 19.03.2026, 01:05 | |||||||
|
И конечно же, нужно и код который был бы, если бы это была задача с вводом не от пользователя, со всеми данными для решения всех трех подзадач и только базовыми инструментами С++. Которой эта задача и является.
Мы знаем только про std::cin/cout/endl, как учат на первом уроке.
И мешать всё в один проход, это анти-паттерн, который способен искривить даже ровные молодые руки. Но это лишь для первых заданий. Циклы и прочее. И на кой тут Qt, кодировки, ошибки ввода и прочий геморой, который на данном этапе обучения и задачи вообще не нужны. Нельзя объять всё и сразу. ТС, моргни три с половиной раза, если тебя держит в заложниках преподователь-извращенец. Добавлено через 1 минуту
0
|
|||||||
|
638 / 396 / 68
Регистрация: 09.03.2016
Сообщений: 4,371
|
|
| 19.03.2026, 01:23 | |
|
0
|
|
|
638 / 396 / 68
Регистрация: 09.03.2016
Сообщений: 4,371
|
|
| 19.03.2026, 01:25 | |
|
000d60,
Быстро ты гонишь. Ударно работаешь. Жаль читателей не очень много. Я за тобою не поспеваю. Код выше... Они редактирование перекрыли, Да и ты что то вклеил..
0
|
|
|
Заблокирован
|
|
| 19.03.2026, 01:31 | |
|
0
|
|
|
638 / 396 / 68
Регистрация: 09.03.2016
Сообщений: 4,371
|
|
| 19.03.2026, 01:32 | |
|
0
|
|
| 19.03.2026, 01:32 | |
|
Будет ли утечка памяти при выполнении данного кода? Утечка памяти в работе с классами Утечка памяти, пользуюсь vld Утечка памяти при умножении матрицы на число Утечка памяти CppWebBrowser Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
|
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи.
. . .
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|