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

Перегрузка new и delete - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Сравнение int с элементом enum http://www.cyberforum.ru/cpp-beginners/thread632583.html
Доброго времени суток. У меня возник вопрос следующего содержания: Пишу прогу на Qt, в некоторой части программы необходимо произвести перебор по перечислению: enum SearchParameter { Id, Title, Author, Word,
C++ Определение конца строки Могу ля как то определить, закончилась ли строка через символ \n? Он занимает одну позицию, или две? http://www.cyberforum.ru/cpp-beginners/thread632540.html
Удалить из строки все подстроки C++
Помогите пожалуйста написать функцию удаляющую из строки s все подстроки s1 с испотльзованием <string> Добавлено через 1 минуту void mydelete(string s, string s1) { int r=0; int k=s.find(s1,r); int t=s1.size(); { while(k!=string::npos)
Пределы Int C++
Нужно найти такое максимальное n, чтобы Фиба не выходила за пределы int и вывести его. #include <iostream> using namespace std; int main() { unsigned int f1, f2, fnext, n; f1 = 0; f2 = 1;
C++ Побороть LPCWSTR http://www.cyberforum.ru/cpp-beginners/thread632425.html
Всем привет. Пишу программку на WinApi но столкнулся с простой проблемой. Мне нужно программно вставить текст в Edit. Код примерно такой: TCHAR FullPath = {0}; .......... SetWindowText( GetDlgItem( hwnd, IDC_EDIT1 ), FullPath ); Получаю такую ошибку: .......NNN.cpp(179): error C2664: SetWindowTextW: невозможно преобразовать параметр 2 из "const char " в "LPCWSTR" Типы, на...
C++ Вывод в Файл С++ Добрый день подскажите пожалуйста как вывести данные из программы в файл ексель и сделать чтоб он сохранялся а не каждый раз когда к нему обращалась программа он перезаписывался. Я знаю способ вывода в файл через ofstream но он перезаписывался каждый раз когда я делаю outFile.open() а мне надо сохранить данные. Ну и если не сложно хотелось не в txt а в екселе конечно. подробнее

Показать сообщение отдельно
Alberto_Timakov
1 / 1 / 0
Регистрация: 21.11.2011
Сообщений: 183
03.08.2012, 23:22  [ТС]     Перегрузка new и delete
Цитата из Скота Мейерса "Эффективное использование C++" к вышенаписанному примеру, а именно к operator delete
Все это прекрасно, однако нас должны беспокоить возможные утечки памя-
ти. Вы не могли не заметить, что operator new из класса Airplane вызывает
: : operator new для выделения больших блоков памяти, a operator delete
ти блоки не высвобождает1. Утечка памяти! Утечка памяти! Мне кажется, я поч-
ти слышу звуки сигнальной сирены в вашей голове.
Обратите внимание: никакой утечки памяти пет.
Утечка возникает тогда, когда память выделяется, а затем вес указатели на нее
теряются. В таком случае она не может быть восстановлена иначе, как чисткой па-
мяти или другим внеязыковым механизмом. Но в данном случае утечка памяти
отсутствует, поскольку все указатели на память не теряются. Каждый большой
блок памяти «начале разбивается на порции размером объекта Airplane, а затем
эти порции помещаются в список свободных блоков. Когда пользователь вызы-
вает Airplane: : operator new, блоки удаляются из списка, и пользователь по-
лучает указатели на них. Когда пользователь вызывает operator delete, бло-
ки опять помещаются в список свободных блоков. При этом все блоки памяти
либо используются объектами Airplane (в этом случае за предотвращение
утечки памяти отвечает пользователь), либо находятся в списке свободных бло-
ков (в этом случае на блок памяти имеется указатель). Никакой утечки нет.
Однако блоки памяти, возвращаемые функцией : -. operator new, никогда не
высвобождаются функцией Airplane: : operator delete, и это явление долж-
но быть названо как-то особо. Такое название действительно существует: пул па-
мяти. Ксли хотите, можете считать это семантической эквилибристикой, но меж-
ду пулом и утечкой памяти существует важное различие. Утечка может расти до
бесконечности, даже если пользователи ведут себя правильно, а пул никогда не
превышает максимального количество памяти, запрошенного пользователем.
Но, я так и не понял...

Добавлено через 2 минуты
Ну, не понимаю, почему нет утечки памяти! Ведь, если мы запустим первый раз программу, то выделится одна область, после закроем программу, память ведь не освободится! откроем снова программу и память выделится другая! и т.д.! или...
 
Текущее время: 09:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru