|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
|||
Когда выделять память08.10.2020, 18:18. Показов 16172. Ответов 201
Метки динамическая память (Все метки)
вот завис в моём понимании этот пункт:
когда выделять поток - в принципе поняла, когда выделять класс - в принципе поняла (чтобы разорвать зависимости) КОГДА выделять память?.. - всё-таки ещё не всегда очень хочется её выделять, чтобы потом удалять... но даже не в этом суть... а смысл первой цитаты? поделитесь please опытом кто-нибудь - когда вы выбираете создать объект на стеке, а когда вы выбираете создать объект в куче?. - какие есть предпосылки для вашего выбора? не хочу потом всё переделывать - а мне всё равно кажется, что на стеке всегда быстрее, а когда и почему лучше куча не знаю... а то ведь могу написать что попало...логично, что на стеке - определена последрвательность, но ведь при обращении к разным объектам проблем вроде не бывает... имхо... и понятно, что через стек идут параметры функций - так что получается, всё остальное, т.е. вообще всё лучше располагать в куче? какую проблему можно получить, если всё располагать на стеке? и в каком случае вообще app не запуститься при таком подходе (есть ли такая опасность)?.. есть ли какие-то критерии "must do"? и никак иначе
0
|
|||
| 08.10.2020, 18:18 | |
|
Ответы с готовыми решениями:
201
Как лучше выделять память: динамичски или в стэке?
Как динамически выделять память на один элемент массива? |
|
19505 / 10108 / 2463
Регистрация: 30.01.2014
Сообщений: 17,829
|
|
| 09.10.2020, 10:21 | |
|
0
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
||
| 09.10.2020, 10:44 [ТС] | ||
|
т.е. по вашему линку надо изучить, как всё по логике... а если её нарушить - то будут косяки со временем жизни - пока беглым взглядом, вижу так... (пока решаю др sub-задачу практически - скоро дойду до кучи - ? вот кстати объект класса WorkerThread - ГДЕ лучше создать - на стеке или на куче ?? - если таких инстансов планируется подрядить несколько - ведь если большой - то лучше на куче??)
0
|
||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||
| 09.10.2020, 10:51 | ||
|
0
|
||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
|
| 09.10.2020, 11:01 [ТС] | |
|
0
|
|
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
| 09.10.2020, 11:02 | |
|
0
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
||
| 09.10.2020, 11:23 [ТС] | ||
|
тоже извините
не сразу сама поправила... думаю пока о другом - ... конечно, с разными функциями - ведь можно в фоне выполнять что угодно Добавлено через 8 минут вообще - идея наверно глупая - плодить много сущностей... оставлю инициализацию thread(s) в myGUI, а потом просто move его (их) каждого в thread_guard - чтобы время жизни обоих не противоречило логике их жизненного цикла... имхо
0
|
||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||
| 09.10.2020, 11:25 | ||
Сообщение было отмечено JeyCi как решение
РешениеНе забывай, что у объектов-на-стеке короткое время жизни и они удаляются автоматически. Соответственно, предавать ссылки на такие объекты в поток надо очень аккуратно. Внутри же функции потока можешь создавать на стеке (но, помнить о размере).
1
|
||
|
Комп_Оратор)
|
|||
| 09.10.2020, 11:27 | |||
|
0
|
|||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
||
| 09.10.2020, 11:34 [ТС] | ||
|
0
|
||
|
Комп_Оратор)
|
||
| 09.10.2020, 11:43 | ||
|
И ещё. Любой код для себя, это библиотека для себя. Если в коде больше пары сотен строк, - через год он становится "сторонней библиотекой", когда смотришь и спрашиваешь себя,- "кто это писал?". Но если оно организованно, более-менее прилично, то это очень дружественный жест по отношению к тому, кто смотрит из зеркала. JeyCi, зачем я вас убеждаю? Уже просто и не знаю. Мне всё больше и больше кажется что вам, конкретно, можно и не выделять память. Контейнеров (со стандартным аллокатором) и смартпойнтеров - хватает? Ну и ладно.
0
|
||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
||
| 09.10.2020, 11:51 [ТС] | ||
что мне сейчас нужен не API, а прикладное по (чуть шире, чем утилита) - что если что-то уже есть во Фреймворке в приемлемом виде, - то я не буду тратить время на разработку того, что есть, когда список (под-)задач шире... принимаю на заметку все советы, выстраиваю свой путь знакомства с языком - без отрыва от текущих задач... спасибо за советы
0
|
||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||
| 09.10.2020, 12:15 | ||
|
1
|
||
|
19505 / 10108 / 2463
Регистрация: 30.01.2014
Сообщений: 17,829
|
|||
| 09.10.2020, 12:23 | |||
|
Добавлено через 3 минуты Добавлено через 2 минуты
1
|
|||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
||||||
| 09.10.2020, 19:35 [ТС] | ||||||
при выходе из scope'a... включая время жизни локальных и др. переменных и констант этого класса...вообще логично - а то вдруг захочу весь этот(эти) поток(и) не в GUI выводить, а перекроить на консольный вывод... убедили - если будет разрастаться из утилиты вширь...а пока живёт в myAppWindow - и scope_guard не нужен... Добавлено через 31 минуту storage duration vs lifetime
Добавлено через 4 часа 56 минут Умные указатели Сырые указатели и Умные указатели Как “научить” Указатель определять, что сам Объект уже удален? Добавлено через 3 минуты и лезть на более низкий уровень тем более...Добавлено через 35 минут и про права владения (это как раз и есть этот new - логично: кто создатель, там и деструктор) - пример: Передача указателя в класс на объект другого класса
0
|
||||||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
||
| 13.10.2020, 11:17 [ТС] | ||
|
вот что, действительно порадовало!
reinterpret_cast(&block) % alignof(Avx_block); и вряд ли будет мной использоваться...но всё-таки возник вопрос на уточнение - ? выделяя new для каких-нибудь structure или user-defined class objects - обязана ли я делать это выравнивание в принципе ?? или всё уже учтено как-то в моих user-defned классах?... наверно, всё-таки учтено...
0
|
||
|
19505 / 10108 / 2463
Регистрация: 30.01.2014
Сообщений: 17,829
|
|||
| 13.10.2020, 12:01 | |||
|
Выравнивание выполняется автоматически на адекватную на текущей архитектуре\системе величину. Влезать в это нужно только если вам нужно получить отличное от принятого по умолчанию значение выравнивания. Добавлено через 4 минуты Она всегда отдает правильно выровненную память для дефолтного значения выравнивания системы.
1
|
|||
|
19505 / 10108 / 2463
Регистрация: 30.01.2014
Сообщений: 17,829
|
||
| 13.10.2020, 12:06 | ||
|
1
|
||
| 13.10.2020, 12:06 | |
|
Подскажите пожалуйста, правильно выделять память под lua состояние
Можно ли, используя make_shared<T> выделять память под массивы, по аналогии с функцией make_unique<T>?
Можно ли выделять память под объект класса с помощью функций calloc, malloc или realloc? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek
ВВЕДЕНИЕ
Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
|
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
|