Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.06.2009, 13:11   #1
Doholyan
Форумчанин
 
Регистрация: 26.04.2009
Сообщений: 270
По умолчанию Динамическая память!!!

Господа! програмисты....
Объясните что это за "зверь" и что с ним едят.
как отдельный элемент самой сущности "динамики" понял...но не могу привязать её у себя в голове....на чер она нужна...кроме того что она, может: выделять программе нужную ей Оперативную Память и размещать данные по АДРЕССАМ....так же с крупными массиами....
И все её достоинства???
Doholyan вне форума Ответить с цитированием
Старый 29.06.2009, 21:05   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Ну вот надо вам в программе ввести массив, но количество элементов заранее не известно (например, его вводит пользователь). Что вы будете делать? Просто объявите статический массив побольше (чтобы наверняка все уместилось) или выделите ровно столько, сколько нужно? А если таких массивов несколько (например, некоторые из них используются в одном месте, а другие - в другом)?
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 29.06.2009, 23:15   #3
Doholyan
Форумчанин
 
Регистрация: 26.04.2009
Сообщений: 270
По умолчанию

???и... все его приимущества?
и только в этом его мисия?
Doholyan вне форума Ответить с цитированием
Старый 29.06.2009, 23:45   #4
Daramant
Форумчанин
 
Регистрация: 06.01.2009
Сообщений: 340
По умолчанию

При решении сколько-либо сложных задач, на этапах проектирования и кодирования, неизвестно - сколько памяти будет необходимо для работы программы.
Выше приводился пример с массивом. Допустим необходимо прочитать элементы массива из файла - ведь размер файла заранее неизвестен. Здесь и поможет динамическая память (хотя может лучше подойдет список вместо массива).
Но массив - это частный случай. Часто используются более сложные структуры данных - списки (очереди, стеки, деки), деревья (бинарные, B-деревья и т.п.), графы(на списках или матричные) и прочие. Их элементы постоянно создаются и уничтожаются во время работы программы и основной принцип - это использовать столько памяти сколько необходимо в данный момент.
В объектно ориентированном подходе: все объекты создаются в динамической памяти (за небольшим исключением). Здесь тот же принцип: создали объект, поработали с ним, удалили.

P.S. На первый взгляд - все. Другие, думаю, дополнят, если что-то упустил.
Истинный успех – это то, что Вы сделали в сравнении с тем, что могли бы сделать.
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили "Титаник".

Последний раз редактировалось Daramant; 29.06.2009 в 23:48.
Daramant вне форума Ответить с цитированием
Старый 30.06.2009, 10:26   #5
Doholyan
Форумчанин
 
Регистрация: 26.04.2009
Сообщений: 270
По умолчанию

....спасибо конечно за разьяснение!!!

но, вот одна диковина))) на Pascale силно то, не разгонишься...за "ограничения" самого языка ну к примеру графически(и, это очень важная штука)...я, так не пониму...зачем "раздувать" память О\П если ей..сильно не воспользуешься( ну, окромя масивов...строк...и т.д)
Doholyan вне форума Ответить с цитированием
Старый 30.06.2009, 11:00   #6
Daramant
Форумчанин
 
Регистрация: 06.01.2009
Сообщений: 340
По умолчанию

Цитата:
за "ограничения" самого языка ну к примеру графически(и, это очень важная штука)
Если ты имел ввиду память под видео страницы, то, да, она ограничена, но есть различные графические режимы с разным числом страниц, можно выбрать что-нибудь подходящее (но, это немного другое).
Доступной оперативной памяти, согласен, не так много как, скажем в Delphi, но ее вполне хватает для написания небольших и средних приложений. Если памяти не хватает: посмотри в сторону написания dll-библиотек и использования оверлеев.

P.S. Посмотри вот это:
http://www.citforum.ru/programming/bp70_lr/lr11.shtml
и это:
http://www.citforum.ru/programming/bp70_lr/lr20.shtml
Истинный успех – это то, что Вы сделали в сравнении с тем, что могли бы сделать.
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили "Титаник".
Daramant вне форума Ответить с цитированием
Старый 30.06.2009, 15:03   #7
Doholyan
Форумчанин
 
Регистрация: 26.04.2009
Сообщений: 270
По умолчанию

Спасибо хорошие ссылки...есть о чем подумать....
Вот говориш...что в Delph доступно памяти по больше...но, Pascal это основа его...как тогда создатель delph прокачал.... О\П?
вот меня что мучает.....не могу уловить ту "цепочку".

Вот не давно создавал "окно" на графическом уровне...что было хоть чуть чуть было похоже(нам привычное)....хоть на что-то подобноее..с мышкой и с текстом....не хрена...не вышло...даже элементарное немог поменять окно спомощью указатель мыши....
Doholyan вне форума Ответить с цитированием
Старый 30.06.2009, 15:23   #8
Daramant
Форумчанин
 
Регистрация: 06.01.2009
Сообщений: 340
По умолчанию

Цитата:
Вот говориш...что в Delph доступно памяти по больше...но, Pascal это основа его...как тогда создатель delph прокачал.... О\П?
Когда мы говорим о Pascale и Delphi, мы говорим о языках программирования.
Они не имеют никакого отношения к объему ОП. Управлением ОП занимается ОС.
Прочти вот это, про типы памяти (возможно слишком подробно, но все таки):
http://osys.ru/os/3/bazovaya_pamyat.shtml
В Windows изменены механизмы доступа к памяти (я имею ввиду способы адресации), поэтому и памяти доступно больше.
Это обзор:
http://www.xard.ru/post/10474/default.asp

Можно подробнее насчет:
Цитата:
Вот не давно создавал "окно" на графическом уровне...что было хоть чуть чуть было похоже(нам привычное)....хоть на что-то подобноее..с мышкой и с текстом....не хрена...не вышло...даже элементарное немог поменять окно спомощью указатель мыши....
Я в графическом режиме, окна рисовал, мышь была и прочее - памяти хватало.
Истинный успех – это то, что Вы сделали в сравнении с тем, что могли бы сделать.
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили "Титаник".
Daramant вне форума Ответить с цитированием
Старый 30.06.2009, 15:28   #9
Anatole
Форумчанин
 
Аватар для Anatole
 
Регистрация: 07.04.2009
Сообщений: 245
По умолчанию

Цитата:
Сообщение от Doholyan Посмотреть сообщение
Вот не давно создавал "окно" на графическом уровне...что было хоть чуть чуть было похоже(нам привычное)....хоть на что-то подобноее..с мышкой и с текстом....не хрена...не вышло...даже элементарное немог поменять окно спомощью указатель мыши....
Всё не так просто, и с наскока не сделаешь. Эта задача давно решена. в 90-х годах для Turbo Pascal была создана библиотека Graphic Vision - полный аналог Turbo Vision, только всё работает в графическом режиме. В том числе изменение размеров окон, поддержка мыши и.д.
Всякое безобразие должно быть единообразным. Тогда это называется порядком.
Anatole вне форума Ответить с цитированием
Старый 30.06.2009, 16:09   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Turbo Vision
Не самая удачная разработка, ИМХО...
Кстати в Турбо паскале проще написать псевдографический интерфейс (в текстовом режиме) там классы для этого нормальные.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
динамическая память aka_faith Общие вопросы C/C++ 47 12.06.2009 12:35
Динамическая память. Пaвeл Помощь студентам 16 31.05.2009 21:16
Динамическая память liver1981 Общие вопросы C/C++ 5 22.04.2009 09:16
Динамическая память.Списки. Гвендолин Помощь студентам 6 31.03.2009 11:12
Динамическая память MadDog__ Помощь студентам 2 22.11.2007 00:05