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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.08.2009, 18:49   #11
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Цитата:
Чтобы не перегонять кучу данных, достаточно просто знать где они находятся.
А что значит "перегонять"?
А функции New GetMem как я понимаю нужны как раз для выделения памяти под данные указателя то есть идет усложнение кода: сначала надо выделить память, потом использовать ее, потом удалить. А вообще есть такие ситуации где без указателей вообще никак не обойтись?
Вадим Буренков вне форума Ответить с цитированием
Старый 13.08.2009, 19:05   #12
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

все можно и без них

кстати процедуры с var параметрами перекидывают именно указатель..
...

насчет перегонять...допустим у нас есть
5 записей размером по 1 метр каждая

з1з2з3з4з5 так они в оперативке идут(может и не так...не суть)
(з1...первая запись и тд)

и допустим надо удалить третью со смещением...
то есть получится должно вот так?
з1з2з4з5

второй вариант...
у это указатель на переменную типа з(указатель 4 байта)

тогда получаем
у1у2у3у4у5 в начале...

делаем так..:
Dispose(у3); (уничтожаем третью з)
и потом перемещаем указатели убирая лишний
у1у2у4у5

что быстрее?
но это...бредово немного выглядит

-------------------------------------------

другой пример...у нас изначально 50 записей по 512 б(T512b)

хранить их в массиве
array of T512Kb;
легко...но при каждой изменении размерности нам нужно 512*новая размерность байт непрерывного адрессного пространства(то есть цельный кусок памяти)
подумай как муторно он их выделять будет

а если сделать так?

type
P512b=^T512b;

и массив

array of P512b;

то при изменении размера нужно всеголишь
4*новая размерность байт непрерывного адрессного пространства

есть разница?

----------------------------------------
с ООП можно обойти все эти премудрости в принципе


надеюсь написал более менее понятно
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 13.08.2009, 19:08   #13
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

кстати забыл насчет "перегонять" уточнить
у каждой функции свой кадр(область памяти)
где находятся её параметры и тд...
так что приходится копировать данные в этот кадр
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 13.08.2009, 19:08   #14
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Когда у вас знакомые спрашивают: "ты где живешь?" вы говорите адрес или конструируете копию своего дома и отдаёте её в качестве ответа?
Допустим есть следующие структуры:
Код:
город = запись
  страна
  список улиц
конец;

улица = запись
  город
  список домов
конец;
Если у улиц город хранить не как указатель, значит там будет храниться копия города, т.е. у нас будет много копий городов (для каждой улицы свой город создастся), а в городах же у нас список улиц хранится, значит и копии улиц попрут... в общем так эта вся фигня плодиться и будет, пока память не кончится.
pu4koff вне форума Ответить с цитированием
Старый 14.08.2009, 07:37   #15
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение

есть разница?
----------------------------------------
с ООП можно обойти все эти премудрости в принципе
Я бы сказал автоматизировать эти премудрости. Ничего не обходится и скорость работы ниже (но и ниже возможность наделать ошибок). То что Вы напрямую не пишите указатели это не значит что Вы ими не пользуетесь.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 14.08.2009, 08:31   #16
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
А вообще есть такие ситуации где без указателей вообще никак не обойтись?
Есть. Когда нужно экономить память. Если бы все серьезные программы держали все в памяти даже то чо не нужно для работы в это время, то компы бы наши были с памятью Гиг 20-50 для стабильной работы иначе бы валились.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вставить знак ударения ElenaTro Microsoft Office Word 5 25.03.2009 13:40
Есть чат на яваскрипте.не могу поставит знак +;Хотя люди его как то ставят, просто мой знак + заменяется maksim1983 JavaScript, Ajax 4 23.02.2009 07:55
Знак не равенства. IVANSour Общие вопросы Delphi 1 20.01.2009 06:53
Е - это знак суммы nikedenis Фриланс 7 03.01.2009 19:52