Динамическое выделение памяти под компоненты в QT
Объясните, будьте добры, почему во всех примерах идет выделение памяти динамически, т.е. new PushButton, new QLabel, new QRegExpValidator, но при этом создаются в стеке QRegExp и т.д. Скиньте литературу или статьи где я могу об этом почитать, ничего толкового в интернете не нашел по этому вопросу. И есть ли какой либо сайт с заданиями по QT как CodeAbbay например?
2
252
Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!
Пікірлер
- Соңғы пікірлер
- AKСәуір 1, 2025, 11:41 Т.Ж.Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
- VPНаурыз 9, 2025, 4:14 Т.Қ.Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
- ИМҚар. 22, 2024, 9:51 Т.Қ.Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
- Енді форумда талқылаңыз
- fАқп. 15, 2025, 1:46 Т.Қ.Подскажите, пожалуйста! Как данный класс можно дополнить, чтобы созданные объекты можно было перемещать мышкой по сцене?
- Не запускается компьютер (точнее работает блок , но сам монитор вообще жесть)В общем я ничего с интернета не скачивала в последнее время. На компе никаких левых пр…
- Вопрос решен. Узнать QModelIndex элемента на который мы перетаскиваем другой элемент, можно с помощью функции indexAt(event->position().toPoint()) представления QTreeViev вызываемой в переопр…
- Спасибо большое за помощь и простите за то что отнял время своей невнимательностью.
Вьюху на стеке не создают- слишком жирно. А QRegExp невелик.
В каком смысле слишком жирно? Все же не могу понять, можно объемнее ответить, пожалуйста?
объем стека, если я не обшибаюсь, для каждого потока на 32 битной машине = 1мб (64 = 4мб), но размер стека можно менять, хотя, не рекомендуется. И доступ к этим данным есть только, пока жив поток. Обращение к данным по указателю дольше, но и когда заводим переменную в куче, то переменная доступна не только во время жизни потока, но и на протяжении работы всей программы/приложения.
Переполнение стека = падает программа. Сам исполняемый код не помещается в стек, но хранит адреса и регистр процессора не обратится к стеку для его выполнения. В стеке просто адреса и локальные переменные.
Вообще, управление памятью - объемная тема и можно копать долго, советую самостоятельно изучить её, тк в моем понимании, наверняка, пробелы. Но, что не стоит делать, дак это пытаться выделять на стеке объемные данные, тем более вью.
Понял, спасибо)