|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
14.10.2017, 09:14 | #11 | |
Форумчанин
Регистрация: 12.04.2017
Сообщений: 889
|
Цитата:
А еще мне while режит глаз, в С/С++ предпочтительнее for во всех случаях. Точнее, его синтаксис позволяет только его использовать. |
|
14.10.2017, 09:37 | #12 |
Вредный кошак
Участник клуба
Регистрация: 14.10.2012
Сообщений: 1,159
|
Немного о оптимизациях: https://habrahabr.ru/post/339962/
|
14.10.2017, 15:09 | #13 | |||||
Форумчанин
Регистрация: 03.03.2013
Сообщений: 102
|
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Другие варианты я тоже пробовал — они тоже не работают. Там исключение на первой итерации цикла. Последний раз редактировалось Haric_110; 14.10.2017 в 15:27. |
|||||
14.10.2017, 15:21 | #14 |
Форумчанин
Регистрация: 03.03.2013
Сообщений: 102
|
У меня вопрос: кто-нибудь пробовал компилировать мой код? Хотя бы в своём исправленном варианте? vector я использовать отказываюсь, потому что не дорос я до него ещё, слишком сишный я пока, сикотно мне), но так я лучше представляю, что происходит с памятью...
Последний раз редактировалось Haric_110; 14.10.2017 в 15:30. |
14.10.2017, 15:33 | #15 |
Форумчанин
Регистрация: 03.03.2013
Сообщений: 102
|
Несложно поставить "следственный эксперимент" и выяснить истину. У меня ноут на AMD. Я использую сборку без оптимизации (Debug в Visual Studio), так компилятор ничего не заменяет, вроде...
Последний раз редактировалось Haric_110; 14.10.2017 в 15:35. |
14.10.2017, 16:07 | #16 | |||
Вредный кошак
Участник клуба
Регистрация: 14.10.2012
Сообщений: 1,159
|
Цитата:
Как исправить я написал. Цитата:
Но я дальше особо не смотрел. Цитата:
Дебаг сборка может работать на порядок медленнее. Все тесты нужно выполнять только в релизе. И большинство компиляторов выполнят оптимизации намного лучше, чем программист. Все Ваши x ^= x в принципе, бесполезны. Последний раз редактировалось Croessmah; 14.10.2017 в 16:37. |
|||
14.10.2017, 18:06 | #17 |
Форумчанин
Регистрация: 03.03.2013
Сообщений: 102
|
Croessmah,
Считайте это просто стилем, как и отказ от for(,,) Release сборка выбрасывает части кода, выполняет кучу оптимизаций и т.д. за счёт этого ускорение, но я не смогу ничего проверить, выполнив такую сборку. Зато она честно выполнит все операции кода (при отключенной оптимизации). Я думаю отдельную тему с тестом создать для разрешения спора, туда скрины настроек приложу, там это можно будет обсудить... а здесь касательно освобождения памяти, о том, что я написал... Эту конструкцию я использую не в первый раз. выполняется она следующим образом: 1. проверяется условие цикла; если истина, то: a. выполняется действие в цикле (присваивание i[ind] значения ind); b. выполняется инкрементирование после действия; c. снова 1; если ложь, то выход из цикла. То есть, ровно так, как Вы написали. Массив заполняется значениями от 0 до n-1, значение ind_2 после выхода из цикла равно n. Пошаговая трассировка это подтверждает. Последний раз редактировалось Haric_110; 14.10.2017 в 18:19. |
14.10.2017, 18:27 | #18 | |||||
Вредный кошак
Участник клуба
Регистрация: 14.10.2012
Сообщений: 1,159
|
С чего бы?
Что Вы там собрались вообще проверять? Это именно то, что Вы получите в результате. Цитата:
А если в дебаге будет всё хорошо, а в релизе потом упадет, то виновата, конечно же, сборка, а не автор кода. Цитата:
Они у всех будут разные, тормознутые, возможно, будут отличаться поведением от конечного продукта, и предназначены исключительно для отладки. Цитата:
Берем код с той же ошибкой: Код:
Цитата:
Цитата:
но при выполнении будут проблемы, мы же выходим за пределы массива. Последний раз редактировалось Croessmah; 14.10.2017 в 18:58. Причина: вроде исправился ))) |
|||||
14.10.2017, 18:33 | #19 |
Форумчанин
Регистрация: 03.03.2013
Сообщений: 102
|
Хорошо, я переписал код без лишних выпендрёжей:
Код:
Последний раз редактировалось Haric_110; 14.10.2017 в 18:36. |
14.10.2017, 18:35 | #20 |
Вредный кошак
Участник клуба
Регистрация: 14.10.2012
Сообщений: 1,159
|
|
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Утечка памяти [Освобождение памяти массива] | denis76560 | Общие вопросы Delphi | 4 | 27.11.2016 18:20 |
Объявление динамического двумерного массива | kineziz | Общие вопросы C/C++ | 4 | 27.05.2012 15:40 |
Освобождение памяти под динамический массив | tsar_ | Общие вопросы Delphi | 7 | 24.12.2011 00:37 |
Матрица из двумерного динамического массива. | Abrokadawr | Фриланс | 5 | 03.11.2011 22:28 |
Освобождение динамического массива? | VintProg | Общие вопросы Delphi | 15 | 28.08.2009 10:41 |