Форум: "Основная";
Текущий архив: 2006.11.26;
Скачать: [xml.tar.bz2];
Внизdynamic array и версия дельфи Найти похожие ветки
← →
sergey L. (2006-10-13 17:31) [0]В какой версии минимальной версии дельфи допустимо использование dynamic array? Третью я проверил - не понимает. Шестая и старше - понимает, но хотелось бы младше :)
← →
i-am-vladko © (2006-10-13 17:32) [1]5 точно может
← →
MBo © (2006-10-13 17:35) [2]в 4 появились
← →
@!!ex © (2006-10-13 17:39) [3]Хм... А я использовал динамические массивы в Borland Pascal 7.0....
Лабу с использованием их сдавал в ВУЗ..... :\
← →
RWolf (2006-10-13 17:41) [4]имхо, это были совсем другие динамические массивы.
← →
@!!ex © (2006-10-13 17:43) [5]
> RWolf (13.10.06 17:41) [4]
Фиг знает.
Но я их в дельфе успешно использую...
Тем боле не спрашивалось о конкретных массивах. :)
← →
sergey L. (2006-10-13 17:50) [6]Спасибо всем за ответы.
> Хм... А я использовал динамические массивы в Borland Pascal 7.0....
Это был open array, совсем не то же самое, что dynamic array.
← →
@!!ex © (2006-10-13 17:58) [7]
> sergey L. (13.10.06 17:50) [6]
Ну ка, ну ка.
Пример Dynamic Array и OpenArray(Впервые слышу. :\) в студию. Интересно.
Если под Dynamic Array подразумевается тот интерфейс, который позволяет изменять размер массива процедуркой SetLength, то могу сказать, что на Паскале такой интерфейс реализуется без особых проблем.
← →
Ketmar © (2006-10-13 18:09) [8]>[7] @!!ex(c) 13-Oct-2006, 17:58
>SetLength, то могу сказать, что на Паскале такой интерфейс
>реализуется без особых проблем.
"реализуется" -- не значит "есть штатно". более того: сильно хочу посмотреть на автоматическое управление такими массивами в TP/BP.
← →
Jeer © (2006-10-13 18:11) [9]@!!ex © (13.10.06 17:58) [7]
Я тебя заверю, что это реализуется без проблем и на asm, и на Pascal, и на...
> OpenArray(Впервые слышу. :\)
Значит еще есть пороховницы для пороха:))
Почитай hlp Delphi об открытых массивах.
Это другое, но тем не менее.
← →
@!!ex © (2006-10-13 18:18) [10]
> "реализуется" -- не значит "есть штатно".
Вопрос был в том, в какой версии можно использовать динамические массивы. Ответ - в любой. Насколько это сложно - уже другой разговор. ;)
> более того: сильно хочу посмотреть на автоматическое управление такими массивами в TP/BP.
А в чем собственно проблема?
Выделяем память под массив, вначале храним размер, пишем свою процедурку изменения размера, которая в случае уменьшения размера массива, особождает кусочек памяти(хотя тут есть варианты действие) и уменьшает размерность, в случае увеличения размера выделяет новую память и переносит туда старые данные.
Еще вопросы?
> Значит еще есть пороховницы для пороха:))
конечно есть, я уже 11 лет постоянно узнаю чето новое о Паскале и до конца жизни буду узнавать, меня это не очень напрягает. :)
> Почитай hlp Delphi об открытых массивах.
Почитал.
> Это другое, но тем не менее.
Насколько мне известно, Паскаль такое не поддерживает.
← →
Ketmar © (2006-10-13 18:19) [11]>[10] @!!ex(c) 13-Oct-2006, 18:18
>> более того: сильно хочу посмотреть на автоматическое
>>управление такими массивами в TP/BP.
>А в чем собственно проблема?
медитируем на слово "автоматическое". очень хочу увидеть, как BP сам освобождает память по выходу массива из области видимости. пока этого нет -- ни о каких динамических массивах речи идти не может.
← →
@!!ex © (2006-10-13 18:26) [12]
> Ketmar © (13.10.06 18:19) [11]
А я всегда наивно полагал, что динамический массив это тот массив, который может менять свою размерность динамически, в процессе работы.
Может вспомним С# в котором вообще менеджер памяти мощнейший? :)
← →
@!!ex © (2006-10-13 18:29) [13]Кстати, вот основной критерий "динамичности" переменных(Взято из описания динамических массивов дельфи, кстати):
При присваивании длинным строкам значений или изменении размера массива компилятор вставляет код, динамически выделяющий область памяти, и присваивает указатель на нее этой переменной. То есть само содержимое строки или массива располагается в динамической памяти.
← →
Ketmar © (2006-10-13 18:34) [14]ну вот и помедитируй на слово "динамически выделяет". пойми, что это не к работе с кучей относится, а именно к compiler magic. которой у TP/BP напрочь нет. и не путай больше термины. %-)
← →
@!!ex © (2006-10-13 19:51) [15]
> Ketmar © (13.10.06 18:34) [14]
Это лично твое определение слова "динамический"?
Или оно откуда то взято?
← →
Ketmar © (2006-10-13 20:16) [16]это лично мой перевод. которые делался на надмозгами и подстрочником, а головой.
← →
@!!ex © (2006-10-13 20:20) [17]
> Ketmar © (13.10.06 20:16) [16]
ИМХО автоматическое освобождение памяти при выходе из процедуры не имеет никакого отношения к динамическим массивам.
Просто приятная фича некоторых высокоуровневых языков.
← →
Ketmar © (2006-10-13 20:27) [18]если компилятор не умеет автоматически освободить память, выделеную под массив, то это называется "работа с кучей" (или подобным), но никак не "работа с динамическими массивами". динамический массив по определению является автоматически управляемым объектом.
← →
@!!ex © (2006-10-13 20:41) [19]
> динамический массив по определению является автоматически
> управляемым объектом.
По определению дельфи? :)
Определение из интернета(Учебник по Basic"у):
"Динамические массивы - это такие массивы, размерность которых может меняться в ходе работы программы."
Определение из интернета(Учебник по С++):
"Динамический массив – это массив, размерность которого задается динамически по ходу программы."
Определение из интернета(Учебник по VBA):
"Динамический массив - это массив с переменным размером, т.е. количество элементов может изменяться во время выполнения программы. "
Определение из интернета(codingclub.net):
"Кусок о динамическом массиве является описанием статического массива. Динамическим массивом является описание неопределенного количества ячеек. Затем в программе можно определить количество ячеек. Этим и отличается динам. массив от статика."
Ни слова о том, что что-то должно происходиьт автоматически. :))
Ладно, у меня доводы кончились, ты выиграл. :)
← →
Ketmar © (2006-10-13 20:46) [20]>[19] @!!ex(c) 13-Oct-2006, 20:41
>По определению дельфи? :)
а мы тут Eiffel, оказывается, обсуждали? %-)
← →
@!!ex © (2006-10-13 20:52) [21]
> Ketmar © (13.10.06 20:46) [20]
Вообще то я гооврил о массивах в Паскале. ;)
А там в хелпе нету описания такого понятия. :))
← →
Ketmar © (2006-10-13 20:59) [22]зато в Delphi есть. откуда я и плясал. %-)
← →
Kolan © (2006-10-13 21:01) [23]Dynamic arrays do not have a fixed size or length. Instead, memory for a dynamic array is reallocated when you assign a value to the array or pass it to the SetLength procedure.
Dynamic-array variables are implicitly pointers and are managed by the same reference-counting technique used for long strings.
← →
@!!ex © (2006-10-15 08:58) [24]
> Kolan © (13.10.06 21:01) [23]
Это определение КОНРЕТНО Дельфевой реализации, однако это не есть абстрактное определение Динамического массива.
← →
Kolan © (2006-10-15 11:03) [25]Общие вопросы (вопросы по Дельфи, которые не попадают в другие конференции)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.11.26;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.046 c