![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 2 Всего: 62 |
Вот раньше,когда начинал прогать,скурпулезно удалял все указатели.Теперь прог8и выросли и их количество тоже.Надоело..
А ну ка возрадите во мне эту традицию..Приведите примеры,засорения памяти,так как проблем пока не возникало. Или это все понты,типа "хороший стиль программирования" -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
|||
|
||||
| LuckLess |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 15.9.2004 Репутация: 1 Всего: 1 |
Писал както прогу...
она строила бинарное дерево возможных ходов в одной игре , чтобы на ее основе сделать наилучший выбор хода... и сделал ошибку в вункции VirtuallFree()... в итоге она не удаляла старые деревья из памяти.. и после минуты игры санимала 1.5 ГБ памяти.. что приводило к нереальным тормозам системы..... |
|||
|
||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
Очень просто. Бегло просмотрев Ваш стиль программирования при таком раскладе ни один разработчик программного обеспечения не возмет Вас на работу. Дело не в памяти, а в стиле кодирования. Если уж программист не в состоянии уследить за своевременным освобождением памяти, то вопрос о качестве решения более сложных вопросов просто не возникнет. К тому же меня настараживает "скурпулезно". Обычно при правильном подходе к делу за этим не требуется особого пригляда. А если для программиста особый пригляд нужен и утомителен, то ... возникают вопросы в его компетентности. При этом можно даже не упоминать о разработке серверных приложений, которые призваны крутиться годами...
-------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| np9mi7 |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 553 Регистрация: 17.8.2003 Где: Volgograd, Russia Репутация: 5 Всего: 10 |
большое количество "прог", признак их простоты, поверь чуть возмешся за человеческий проект, сразу задашся вопросами эфф. упр. ресурсами... это целая наука, интелектуальные указатели...итд... |
||||
|
|||||
| En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: 1 Всего: 20 |
Я действую по принципу : "Выделил память - освободи, когда обьект уже не нужен". Причем освобождаю всегда вручную, не надеясь на якобы встроенные средства.
|
|||
|
||||
| Coocky |
|
||||||||||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 2 Всего: 62 |
arajan
Ну вот хотелось бы увидеть(услышать) пример глюкала
Большое количество не прог,а указателей.
Уже не один за плечами
А вот это уже интересней.А где можно посмотреть? LuckLess Пример понятен.Спасибо.
Я сам себе директор -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
||||||||||
|
|||||||||||
| S.A.P. |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2664 Регистрация: 11.6.2004 Репутация: 9 Всего: 71 |
Читай Рихтера, только они умные называются, вроде. RAdmin ссылку на книгу давал в комп. лите.
|
||||
|
|||||
| Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 2 Всего: 62 |
Perchilla
Понял,старик,убедил А так вот никому нельзя было обьяснить.Действительно,понытно,чем долговечней,тем проблемней -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
|||
|
||||
| np9mi7 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 553 Регистрация: 17.8.2003 Где: Volgograd, Russia Репутация: 5 Всего: 10 |
ДА с учетом даже обычного блокнота мне кажеться имеет смысл работь с ресурсами окуратнее....
интелектуальные указатели |
|||
|
||||
| pablo |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 320 Регистрация: 12.2.2005 Где: Вильнюс, Литва Репутация: 4 Всего: 6 |
Не своевремменное освобождение памяти - это не только осточник трудно улавимых ошибок, плохого стиля программирования, но и причина не понимания программирования вообще.
Никому (программерам) неахота писать глючные проги, которые жрут ресурсы и стопорят систему. -------------------- Первый блин всегда похож на сферу, иногда бывает и куб. |
|||
|
||||
| np9mi7 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 553 Регистрация: 17.8.2003 Где: Volgograd, Russia Репутация: 5 Всего: 10 |
pablo ? best regals...
|
|||
|
||||
| Vyacheslav |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
Вручную? Зачем? Если есть возможность, то пусть у меня голова болеть не будет
Сколько памяти здесь утекло? -------------------- С уважением, Вячеслав Ермолаев |
||||
|
|||||
| Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 2 Всего: 62 |
arajan неплохо.Спасибо.Интересно будет почитать
pablo
Спасибо Займусь вышиванием. Короче спасибо всем,и тем кто подсказал,и тем кто любит измерять время выполнения своих функций,и хвастаться бабушке с мамой,или изобретать свои методы сортировок,думая что он велик,изобревши велосипед,с одним колесом -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
|||
|
||||
| chipset |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 27 Всего: 165 |
Есть такая книга: С++ для настоящих программистов[RUS,1.8MB,PDF], этим умным указателем чуть ли ни вся она посвящена.. Интересно, а как ты на STL кодил без них? Зайди - http://www.firststeps.ru/theory/c/r.php?2 и ещё по оглавлению поброди.. Если не хочешь освобождать память, тебе прямая дорога в .NET и Java. . Это сообщение отредактировал(а) chipset - 18.3.2005, 00:19 --------------------
|
||||
|
|||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
Гораздо интересней как на STL вместе с ними кодить можно? |
|||
|
||||
| Borisff2003 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 198 Регистрация: 26.2.2004 Где: г. Уфа Репутация: 1 Всего: 1 |
А контейнер из стандартных умных указателей(auto_ptr ) вообще лучше не создавать(читать Мейерса), а то там семантика такая, что при присваивании указателя, меняется владелец. --------------------
Лень, двигатель прогресса |
|||
|
||||
| Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 2 Всего: 62 |
Вот так и кодил.
А выражение
Встречал,но ни разу не пользовался Добавлено @ 21:16 Я ввобще шаблонами редко пользуюсь Все что надо есть в МФС.А динамичексого массива и списка хвтает с головой. Но если столкнусь,всегда смогу заглянуть в книгу Добавлено @ 21:18 Кстати.Еще вот вопросик. А как лучше пользоваться времеными обьектами(вспомагательными)-обьявлять в классе и хранить до конца проги или в функции,и использовать только когда она работает? Это сообщение отредактировал(а) Coocky - 18.3.2005, 21:13 -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
|||
|
||||
| chipset |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 27 Всего: 165 |
Для этого делаются контейнеры умных указателей, чтобы предотвратить замусоривание памяти... --------------------
|
||||
|
|||||
| Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 2 Всего: 62 |
Ну и понеслись в лес Хорошо таким в консоли баловаться.А когда 10-12 классов в проге,да и МФС,забываешь о всех премудростях Добавлено @ 21:25 А на вопросик-то еще не ответили,про обьекты.А ведь тоже память жрут,хоть и разок при открытии -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
|||
|
||||
| chipset |
|
||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 27 Всего: 165 |
Как раз наоборот. Добавлено @ 21:37
Зависит от того - нужен ли он тебе в течении всей жизни программы, или только на короткий срок, сам понимаешь Старайся в разные темы писать... --------------------
|
||||||
|
|||||||
| Coocky |
|
||||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 2 Всего: 62 |
chipset
А если их много,и нужны они на протяжении жизни проги,но не всегда chipset
Пример ? -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
||||
|
|||||
| chipset |
|
||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 27 Всего: 165 |
В сложных программах - больше классов - больше память замусоривается при неправильном использовании.. Добавлено @ 21:46
Зависит от конкретной задачи. --------------------
|
||||||
|
|||||||
| Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 2 Всего: 62 |
chipset
Это намек на шаблоны? А не легче ли через поиск все new найти,и сопоставить им соответсвующие delete -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
|||
|
||||
| chipset |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 27 Всего: 165 |
Не забывай что после того как ты сделаешь delete, другой класс может рассказать тебе про Access Violation. --------------------
|
||||
|
|||||
| Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 2 Всего: 62 |
Вот это меня и убивает при удалении указателей.
Как впрочем запарки могут быть и с шаблонами и тем более с контейнерами указателей. -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
|||
|
||||
| chipset |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 27 Всего: 165 |
Coocky, не всё так страшно.. Просто надо правильно проектировать програму и выявлять области жизни обьектов
Это сообщение отредактировал(а) chipset - 18.3.2005, 22:10 --------------------
|
|||
|
||||
| Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 2 Всего: 62 |
chipset
Короче,завязали с темой А то уже наговорили про меня целую кучу Кстати,а нет ли литературы(опять же в электронке) как правильно делать проги(не программировать А то начинаю с интерфейса под ключ.затем пишу код для одного действия.затем понимаю,что что-то упустил,кидаюсь туда.забывая зачем делала первое.Ну а в конце свожу все к обновлению кнопок на тулбаре -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
|||
|
||||
| chipset |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 27 Всего: 165 |
Вкратце: 1) Требования - определяешь что тебе надо будет от программы, конкретно. 2) Спецификация - разбиваешь требования на отдельные, логические модули. 3) Проектирование - на бумажке или в UML, по спецификации строишь иеархию обьектов и то как они пересекаются. 4) Кодинг - запускаешь студию и начинаешь лениво набивать классы, в промежутках играя в Quake3:Arena. 5) Переделывание проекта нахрен - после того как ты понимаешь что третья часть была полным бредом и всё надо делать 100% наоборот, переделываешь её вышеуказанным методом. 6) Интерфейс - ваяешь сам, или заставляешь дизайнеров сваяивать интерфейс и прибиндить его к событиям твоего кода. 7) Переделывание интерфейса 8) Тестирование - мучаешь свою программу, используя изощренные садистские методы, пока не добьешься стабильной работы. 9) Можно называть программу pre-alpha 0.01 и начинать тестирование на живых людях (до-поры до -времени). Это сообщение отредактировал(а) chipset - 18.3.2005, 22:25 --------------------
|
||||
|
|||||
| Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 2 Всего: 62 |
И так по твои пунктам делаю-
1.Заказчики добавляют каждый раз новое 2.Не делаю.Но может в уме 3.Да у меня и ручки-то нет 4.Делаю.Надо поставить еще QUAKE 5.Переделывю после того,как понимаю,что 70%-бред. 6.Единственое,что хорошо получается 7.Неа сразу и под ключ 8.Что-то всегда зупускаю все равно,потому и бегаю потом к заказчикам и храню сорцы 9.Да.Обычно типа Демо-версия Ну а если серьезно? -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
|||
|
||||
| chipset |
|
||||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 27 Всего: 165 |
Я на полном серьёзе, если выкинуть Quake.
Значит надо делать гибкую структуру и драть с заказчиков деньги. Добавлено @ 22:48
--------------------
|
||||||||
|
|||||||||
| np9mi7 |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 553 Регистрация: 17.8.2003 Где: Volgograd, Russia Репутация: 5 Всего: 10 |
|
||||
|
|||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |