Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
xADMIRALx
67 / 61 / 1
Регистрация: 09.06.2012
Сообщений: 291
#1

Выделение и освобождение памяти в c++ - C++

30.07.2012, 05:02. Просмотров 1233. Ответов 8
Метки нет (Все метки)

Не давно наткнулся на такую замечательность :

C++
1
2
3
4
system("PAUSE");//1 раз
int *p = new int[30000]; // память
system("PAUSE");//2 раз
delete[] p;// нет память
Запускаю программу,смотрю скока мемори она хавает 226(примерно)
Нажимаю 1 раз интер,программа хавает мемори 654кб(примерно)
нажимаю еще раз интер и тут,чудо программа опять хавает 654кб


почитал про new delete понял как они работуют,и тут сразу же мысль как же удалить этот не нужный кусок?Что бы программка опять хавала 226
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.07.2012, 05:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Выделение и освобождение памяти в c++ (C++):

Выделение и освобождение памяти - C++
Доброго времени суток. Пишу класс по ООП, и назрел один вопрос, связанный с моментом выделения и освобождения памяти. class SOK { ...

Освобождение и выделение памяти - C++
Помогите разобраться с программой, где здесь выделение памяти (как я понял это new) и где освобождение памяти. #include <iostream> ...

Выделение и освобождение памяти - C++
Вот встретился с вопросом какой вариант является более правильным и почему. char *Buffer1 = (char *)malloc(65536) char *Buffer2 =...

Выделение-освобождение памяти - C++
Добрый день. Написал заготовку под программу. Возник вопрос: правильно ли выделяю-освобождаю память? Программа работает корректно, но...

выделение и освобождение памяти - C++
В моей программе есть следующий код: char* lexems; // массив указателей на символ char* lexem; // вспомогательная...

Освобождение и выделение динамической памяти - C++
Привет народ, такой вопрос: Допустим в main, указателю выделил память, всё разумеется нормально, читаю пишу всё ок, потом передал этот...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
ProNoooob
72 / 72 / 6
Регистрация: 14.10.2009
Сообщений: 121
30.07.2012, 05:20 #2
Так работает менеджер памяти Windows.
Он резервирует эту память за твоей программой. Вдруг ты опять захочешь выделить кусок памяти?
Тогда память выделится быстрей.
К тому-же это не реальная память, а виртуальная.
xADMIRALx
67 / 61 / 1
Регистрация: 09.06.2012
Сообщений: 291
30.07.2012, 05:22  [ТС] #3
Да про это Я читал,но как же быть?Как удалить эту память ?И в смысле виртуальная?фаил подкачки чтоль ? %)
Nameless One
Эксперт С++
5771 / 3420 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
30.07.2012, 08:32 #4
Цитата Сообщение от xADMIRALx Посмотреть сообщение
Как удалить эту память ?
Ты эту память уже удалил. А система ее освободит тогда, когда ей будет удобно/когда в этой памяти возникнет необходимость
xADMIRALx
67 / 61 / 1
Регистрация: 09.06.2012
Сообщений: 291
30.07.2012, 08:34  [ТС] #5
Nameless One, А мне самому нельзя что ли этим управлять ?
Nameless One
Эксперт С++
5771 / 3420 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
30.07.2012, 08:35 #6
xADMIRALx, вроде нет, но не уверен. Стандартными средствами точно нет. А зачем?
xADMIRALx
67 / 61 / 1
Регистрация: 09.06.2012
Сообщений: 291
30.07.2012, 08:36  [ТС] #7
Nameless One, Я проста запиливаю данный из файла в массив оч многа,и потом мне нужно их освободить и с другого файла запилить...
Nameless One
Эксперт С++
5771 / 3420 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
30.07.2012, 08:41 #8
xADMIRALx, ну и в чем проблема? Как я говорил выше, эту память ты уже освободил. Никто тебе не мешает заново выделить память. Не бойся, утечек не будет.
xADMIRALx
67 / 61 / 1
Регистрация: 09.06.2012
Сообщений: 291
30.07.2012, 08:43  [ТС] #9
Nameless One, Ясно,спасибо!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.07.2012, 08:43
Привет! Вот еще темы с ответами:

Указатели на строки. Выделение и освобождение памяти - C++
Всем добрый день. Есть два указателя на char. Для первого выделяется память а у второго просто делаем копию с первого. Для 1-го...

выделение памяти и никогда не выполняете* ее освобождение - C++
Как это можно сделать написать программу с бесконечным циклом» в котором постоянно происходит выделение памяти и никогда не выполняете*...

Выделение и освобождение памяти в конструкторе и деструкторе - C++
Есть программа с классом содержащим обьекты векторы. Однако по кончанию программы выбивате ошибку _block_type_is_vali(phead->nblockuse)....

Выделение и освобождение памяти для локальных переменных функций - C++
Привет Столкнулся со следующей проблемой. Написал простенькое приложение: читаем 1 строку из файла на диске, записываем 1 строку в файл...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
30.07.2012, 08:43
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru