![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
Lindemann66 |
|
||||
Thinking... ![]() Профиль Группа: Участник Сообщений: 117 Регистрация: 2.8.2011 Где: Ульяновск Репутация: нет Всего: нет |
Всем привет!
Не сочтите за глупость, но возник интересный вопрос, над которым давно думаю, а овтета нигде не находил Вот нужно, допустим, создать массив из n элементов Сделать это можно 2-мя способами
и
Но в одном случае создание массива сопровождается выделением памяти, а в другом - без В чём принципиальная разница? Я понимаю, в Qt сразу написано - объекты QObject необходимо создавать с выделением памяти, чтобы не было проблем Понятно, так и делаем. А тут как правильней? --------------------
stay true |
||||
|
|||||
spyswamp |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 349 Регистрация: 18.8.2006 Репутация: 1 Всего: 7 |
А если память _не_выделяется_, то куда данные будут записаны? ;)
-------------------- - why you call it beta? - cuz it's betta then nothin' |
|||
|
||||
Lindemann66 |
|
|||
Thinking... ![]() Профиль Группа: Участник Сообщений: 117 Регистрация: 2.8.2011 Где: Ульяновск Репутация: нет Всего: нет |
да, сглупил) память в любом случае выделяется ![]() вообще, я уже нашёл ответ на свой вопрос можно сказать, вопрос решённый ![]() --------------------
stay true |
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 21 Всего: 135 |
Достаточно много читал документации по Qt и эту строчку пропустил. Не подскажешь, где это они говорят ? -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
CasperSC |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 27.11.2009 Репутация: нет Всего: 1 |
Прикольно. Все в курсе, автор нашёл ответ, только никто так и не ответил. Тема пользы читающим не приносит к сожалению. Поделитесь пожалуйста информацией по вопросу.
|
|||
|
||||
Modul |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 238 Регистрация: 17.2.2006 Репутация: нет Всего: нет |
Ну да, они учатся читать книжки. ![]() И потом еще читать-уточнять. 1) память для массива выделена на стеке; 2) память для массива выделена динамически. Для понимания глубже нужны разделы в книге (по стеку и динамике), потом пару лет практики, ну и ... понятно тогда. --------------------
I'll be back ! |
|||
|
||||
pahan13 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 19.2.2010 Репутация: 1 Всего: 2 |
В первом случае
память которая была выделена под этот массив автоматически освободиться после того как программа выйдет за приделы блока кода(фигурных скобок) в которых этот массив был объявлен. Например если создать таким образом массив в функции и в конце вернуть указатель на него. То этот указатель будет указывать не пойми на что короче. Во втором случае
память должна быть освобождена с помощью оператора delete. Это сообщение отредактировал(а) pahan13 - 9.8.2011, 19:25 |
||||
|
|||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 21 Всего: 135 |
CasperSC, http://www.maxi-pedia.com/what+is+heap+and+stack
отличие не только, вернее не столько, в этом (есть smart_ptr со своим конструктором/деструктором, которые следят за этим). Размер памяти, которую можно выделить на стеке, имеет ряд ограничений (со стороны процессора, компилятора, etc), а размер памяти на куче имеет одно ограничение - размер памяти у одноимённого менеджера (обычно ограничение накладывается самой ОС). Другими словами, выделить ГБ памяти на стеке не получится. Никак. А в куче - можно
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |