![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
Svia |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 20.5.2009 Репутация: нет Всего: нет |
Что-то не могу сообразить, что к чему:
До этого считал, что инструкция delete[] вызовет оператор delete для каждого объекта в последовательности. Т.е. в моем случае эквивалентно:
С другой стороны, пока писал, пришла в голову мысль, что инструкция delete[] ArrayOfObjects вызовет фактически
В итоге, тогда относительно изначального вопроса я получаю для каждого элемента последовательности удаление указателя на указатель, так? Вообще, я немного запутался в этом вопросе. |
||||||
|
|||||||
gosn1ck |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 18.4.2009 Репутация: 1 Всего: 1 |
Это сообщение отредактировал(а) gosn1ck - 11.6.2009, 14:50 |
|||
|
||||
zim22 |
|
|||
![]() depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
temp_surfaces - массив из 3 указателей на тип cairo_surface_t память под него выделяется в стеке, но не из динамической памяти. какое право вы имеет писать
если вы не создавали его с помощью new? |
|||
|
||||
andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
Svia, Читай в доках про эту функцию.
Похоже она работает temp_surfaces. Но раз ты память не выделяешь, значит должна быть функция которая это делает. А возможно и нет. -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
Svia |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 20.5.2009 Репутация: нет Всего: нет |
Функция LoadSomethingToArray2x создает наполнение массива. Это не очень очевидно из первого поста, но это так =) Добавлено через 6 минут и 45 секунд
Она выделяет, это моя функция =) То, что выделит - это факт. Интесно как удалять. |
||||||
|
|||||||
andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
-------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
zim22 |
|
|||
![]() depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
есть разница между заполнением массива (присваиванием) и динамеческим созданием массива. если вы имеете ввиду, что вы присваиваете индексам массива адреса памяти, возвращённые new, то и удаляйте указатели по индексам, а не сам массив.
Это сообщение отредактировал(а) zim22 - 12.6.2009, 08:17 |
|||
|
||||
Svia |
|
||||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 20.5.2009 Репутация: нет Всего: нет |
Ага, вроде встало все на свои месте. * Удалять сам массив нельзя, т.к. он создан на стеке, с этим разобрался. * delete[] array вовсе не эквивалентно вызову нескольких delete для каждого элемента массива * Если я верно понял, то delete[] скорее вызоветдеструктор по умолчанию для каждого из объектов, но не для указателей. Вроде так. |
||||
|
|||||
azesmcar |
|
||||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
это разные операторы new T вызывает operator new(sizeof(T)), new T[5] вызывает operator new[](sizeof(T)*5+x) если память была выделена с помощью operator new[], то и освобождаться она должна соответствующим оператором delete[].
где все этого нахватались? Какой деструктор по умолчанию? вы знаете и другие деструкторы? Деструктор один единственный на весь класс. |
||||||
|
|||||||
andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
-------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
||||
|
||||
![]() ![]() ![]() |
Правила форума "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. |