|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
Оператор delete[]19.02.2020, 12:46. Показов 3298. Ответов 17
Метки нет (Все метки)
0
|
|
| 19.02.2020, 12:46 | |
|
Ответы с готовыми решениями:
17
оператор delete
Оператор delete |
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
| 19.02.2020, 12:53 [ТС] | |
|
Croessmah, как с указателя понять на какого размера участок памяти он указывает?
0
|
|
|
Неэпический
|
||
| 19.02.2020, 12:55 | ||
Сообщение было отмечено ReYalp как решение
РешениеСистема (или какойто другой уровень, используемый для выделения памяти) вернула адрес выделенной памяти, потом его вернули обратно системе. Как там ОС будет это расхлебывать - её проблемы. Также, можно запросить у ОС чуть больше памяти, чем запросил пользователь. Тогда есть возможность сохранить дополнительную служебную информацию, например, число объектов для которых нужно вызвать деструкторы.
1
|
||
|
зомбяк
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
|
| 19.02.2020, 12:56 | |
Сообщение было отмечено ReYalp как решение
Решение
ReYalp, зависит от реализации этого самого выделения в компиляторе. Иногда размер пишется в памяти перед местом, с которого начинается собственно выделенный массив.
1
|
|
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
| 19.02.2020, 12:59 [ТС] | |
|
Croessmah, ну ему это нужно знать чтобы освободить столько памяти сколько было выделено, спасибо за ответ
0
|
|
|
Неэпический
|
||
| 19.02.2020, 13:02 | ||
delete[] не волнует.
0
|
||
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
| 19.02.2020, 13:04 [ТС] | |
|
Croessmah, а что кстати будет если сместить указатель вправо и пттом вызвать delete[]?
0
|
|
|
19495 / 10100 / 2461
Регистрация: 30.01.2014
Сообщений: 17,808
|
|
| 19.02.2020, 13:04 | |
|
ReYalp,
Можно ли обойти динамический массив не зная его размер? Можно ли обойти динамический массив не зная его размер?
2
|
|
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
| 19.02.2020, 13:12 [ТС] | |
|
DrOffset, а насколько целесообразно использовать размер массива таким способом? Такое на практике используется?
0
|
|
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
| 19.02.2020, 13:19 [ТС] | |
|
Croessmah, Вы же только что писали что размер delete[] не нужен
0
|
|
|
Неэпический
|
||
| 19.02.2020, 13:23 | ||
|
"Массивная" версия delete-expression делегирует освобождение памяти operator delete[] . Тот в свою очередь возлагает это на operator delete. operator delete вполне может быть реализован через C'шный free.А теперь вопрос. Зачем free знать размер выделенной памяти? malloc может вызвать HeapAlloc(heap, flags, count), а free тогда будет вызывать HeapFree(heap, flags, memptr). Нигде здесь не нужен размер выделенного участка. Хотя реализация вправе сохранять служебную информацию каким-то образом.
0
|
||
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
| 19.02.2020, 13:23 [ТС] | |
|
Croessmah, так а я с самого начала писал о участке памяти, те байтах
0
|
|
|
Неэпический
|
||
| 19.02.2020, 13:29 | ||
new[] запрашивает у operator new[] чуть больше памяти и записывает в начало выделенной памяти число созданных объектов, а пользователю возвращается смещенный указатель. delete[] об этом знает. Читает количество объектов, вызывает деструкторы, смещает указатель как нужно и передает его operator delete[]. Опять же, размер выделенного блока ему не нужен.
0
|
||
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
| 19.02.2020, 13:46 [ТС] | |
|
Croessmah, зачем тогда сохраняется размер блока для free?
0
|
|
|
Неэпический
|
|||||||
| 19.02.2020, 13:50 | |||||||
|
К слову, имеются версии
operator delete[], принимающие размер. И можно переопределить эти функции. Стандартная реализация сводится просто к вызову без размера. Пробуем переопределить
оть - https://rextester.com/LLMDM72823 уть- https://rextester.com/QBG57835 опа- https://rextester.com/JIRH96339 Добавлено через 3 минуты
0
|
|||||||
| 19.02.2020, 13:50 | |
|
Помогаю со студенческими работами здесь
18
Оператор delete Оператор delete[] Оператор delete[] Оператор delete в деструкторе Можно ли обобщить оператор delete ? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|