|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
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 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,065
|
Когда у вас знакомые спрашивают: "ты где живешь?" вы говорите адрес или конструируете копию своего дома и отдаёте её в качестве ответа?
Допустим есть следующие структуры: Код:
|
14.08.2009, 07:37 | #15 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Я бы сказал автоматизировать эти премудрости. Ничего не обходится и скорость работы ниже (но и ниже возможность наделать ошибок). То что Вы напрямую не пишите указатели это не значит что Вы ими не пользуетесь.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
14.08.2009, 08:31 | #16 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вставить знак ударения | 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 |