| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > Удаление массива указателей |
| Автор: Svia 11.6.2009, 14:33 | ||||||
Что-то не могу сообразить, что к чему:
До этого считал, что инструкция delete[] вызовет оператор delete для каждого объекта в последовательности. Т.е. в моем случае эквивалентно:
С другой стороны, пока писал, пришла в голову мысль, что инструкция delete[] ArrayOfObjects вызовет фактически
В итоге, тогда относительно изначального вопроса я получаю для каждого элемента последовательности удаление указателя на указатель, так? Вообще, я немного запутался в этом вопросе. |
| Автор: gosn1ck 11.6.2009, 14:50 | ||
|
| Автор: zim22 11.6.2009, 15:01 | ||
temp_surfaces - массив из 3 указателей на тип cairo_surface_t память под него выделяется в стеке, но не из динамической памяти. какое право вы имеет писать
если вы не создавали его с помощью new? |
| Автор: andrew_121 11.6.2009, 15:39 |
| Svia, Читай в доках про эту функцию. Похоже она работает temp_surfaces. Но раз ты память не выделяешь, значит должна быть функция которая это делает. А возможно и нет. |
| Автор: Svia 11.6.2009, 21:28 | ||||||
Функция LoadSomethingToArray2x создает наполнение массива. Это не очень очевидно из первого поста, но это так =) Добавлено через 6 минут и 45 секунд
Она выделяет, это моя функция =) То, что выделит - это факт. Интесно как удалять. |
| Автор: andrew_121 11.6.2009, 22:06 |
Покажи как выделяешь. |
| Автор: zim22 12.6.2009, 08:16 | ||
есть разница между заполнением массива (присваиванием) и динамеческим созданием массива. если вы имеете ввиду, что вы присваиваете индексам массива адреса памяти, возвращённые new, то и удаляйте указатели по индексам, а не сам массив.
|
| Автор: Svia 12.6.2009, 11:10 | ||||
Ага, вроде встало все на свои месте. * Удалять сам массив нельзя, т.к. он создан на стеке, с этим разобрался. * delete[] array вовсе не эквивалентно вызову нескольких delete для каждого элемента массива * Если я верно понял, то delete[] скорее вызоветдеструктор по умолчанию для каждого из объектов, но не для указателей. Вроде так. |
| Автор: andrew_121 12.6.2009, 12:29 |
А кто такой х ? |
| Автор: azesmcar 12.6.2009, 15:05 |
неизвестная оверхед |