|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||||||||||
Теория по динамической памяти13.12.2012, 06:06. Показов 3069. Ответов 41
Метки нет (Все метки)
Предположим, применяется оператор new в форме для массива:
0
|
|||||||||||
| 13.12.2012, 06:06 | |
|
Ответы с готовыми решениями:
41
Освобождение динамической памяти Вопрос по динамической памяти Удаление new из динамической памяти |
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
|
| 13.12.2012, 06:16 | |
|
0
|
|
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||||||
| 13.12.2012, 08:44 [ТС] | ||||||
|
То есть дополнительный size_t перед самим блоком? А как оно в винде на самом деле? И может ли к этой инфе достучаться прилада? Чтоб не дублировать её каунтом.
Добавлено через 1 час 4 минуты Такой:
0
|
||||||
|
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
|
||
| 13.12.2012, 09:55 | ||
|
Добавлено через 57 секунд и это http://www.cplusplus.com/refer... r%20delete[]/
0
|
||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||||||||||||||||
| 13.12.2012, 10:59 [ТС] | |||||||||||||||||
|
Ещё: откуда new знает, можно ли выделить память в уже имеющейся странице, или уже нет?
Добавлено через 6 минут
Добавлено через 17 минут
Добавлено через 30 минут Сам прогнал, не учёл, что вычитание даёт разницу в сайзофах, а не байтах.
0
|
|||||||||||||||||
|
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
|
||||||||||||
| 13.12.2012, 16:15 | ||||||||||||
в твоем примере тут
0
|
||||||||||||
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
||||||
| 13.12.2012, 17:03 | ||||||
Если увеличить кол-во памяти, которое нужно, например, до 64:
Добавлено через 15 минут
2
|
||||||
|
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
|
|||||||
| 13.12.2012, 17:14 | |||||||
Добавлено через 3 минуты хотя нет оно не меняется, ибо является мусором и видимо его никто не переписывает, даже если я меняю размер исходного массива, число не меняется) так что не там хранится размер массива) Добавлено через 3 минуты Vourhey, а твой пример выдал -98 и так же не меняется с изменением размера массива)
0
|
|||||||
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
|||
| 13.12.2012, 17:15 | |||
|
Добавлено через 38 секунд
0
|
|||
|
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
|
|
| 13.12.2012, 17:20 | |
|
твой пример работает не так как ты пишешь, у меня в частности, проверь сам, что бы не было глупых ответов)
0
|
|
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
||||||||||||||
| 13.12.2012, 17:44 | ||||||||||||||
|
То, как это работает у тебя - это будет другое "например", поэтому ответь автору по-нормальному, а не пытайся доказать то, что заранее неправда, так как, вариантов несколько. Добавлено через 17 минут
0
|
||||||||||||||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
| 13.12.2012, 17:49 [ТС] | |
|
Если я триллион раз выделю память и освобожу указатель, то по методе "каждый следующий выделяется впереди" уйдём за границу адресного пространства. По кругу нельзя, так удаляться и снова выделяться мог второй по порядку указатель, а первый существовать всегда. Если выделять только целыми страницами то другая пакость. Может у меня 67108864 динамичских массива по 32 чара? Перерасход адресного пространства в 32768, так как в странице можно разместить 1048576 байт. + уйдём за физическую память, та как страница виртуальной памяти занимает столько же и в физической. А если разделять терминальными страницами, то адресное пространство будет исчерпано в 2 раза быстрее физической памяти. Как ни крути, надо вести учёт байтов, а не страниц. Как это делается в винде?
0
|
|
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
|
| 13.12.2012, 17:49 | |
|
0
|
|
|
425 / 390 / 113
Регистрация: 21.09.2012
Сообщений: 913
|
||||||
| 13.12.2012, 17:50 | ||||||
|
Vourhey, Напишите, пожалуйста, как найти количество элементов в дин. массиве float и double. Для int вот это работает
0
|
||||||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||
| 13.12.2012, 17:55 [ТС] | |||
|
Добавлено через 3 минуты
0
|
|||
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
|||||||
| 13.12.2012, 18:03 | |||||||
Добавлено через 6 минут taras atavin, насколько я помню (но могу и ошибаться), то каждый последующий не "впереди" выделяется, а ищется свободный непрерывный блок памяти. Он может быть не обязательно "впереди". Но это уже, скорее, относится к менеджеру памяти конкретной ОС, а не к С++.
1
|
|||||||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
| 13.12.2012, 18:04 [ТС] | |
|
И без квадратных скобок в числителе. А прямо так даже не компилится: указатели на сайзофы не деляться.
0
|
|
|
425 / 390 / 113
Регистрация: 21.09.2012
Сообщений: 913
|
|||||||
| 13.12.2012, 18:08 | |||||||
0
|
|||||||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||||||||||||
| 13.12.2012, 18:11 [ТС] | ||||||||||||
Добавлено через 1 минуту Добавлено через 1 минуту
0
|
||||||||||||
|
Модератор
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,859
|
||||||||||||
| 13.12.2012, 18:22 | ||||||||||||
sizeof(a) размер всего массива в байтах sizeof(a[0]) размер первого элемента в байтах можно написать так (например для double)
0
|
||||||||||||
| 13.12.2012, 18:22 | |
|
Помогаю со студенческими работами здесь
20
Освобождение динамической памяти Вопросы по динамической памяти. Выделение динамической памяти Освобождение динамической памяти Удаление динамической памяти Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|