![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Объявление дин. массива в Pascal!
Ученик_2008 © (2007-11-22 17:06:00)Подскажите пожалуйста, как объявить динамический массив в Turbo Pascal, не в Delphi!
Германн (2007-11-23 01:57:00) [1]
> Ученик_2008 (22.11.07 17:06)
>
> Подскажите пожалуйста, как объявить динамический массив
> в Turbo Pascal, не в Delphi!
>
Ну и ещё, если потребуется массив более 64К, рекомендую обратить внимание на Turbo Professional.
Anatoly Podgoretsky (2007-11-22 21:37:00) [2]> Che Vingam (22.11.2007 21:33:10) [10]
Ну как сказали 16 байт это или диспетчер памяти или особенности сегментации.
Che Vingam (2007-11-22 21:33:00) [3]
> Anatoly Podgoretsky
Упс, действительно. Уже все забыл :-(
DiamondShark (2007-11-22 19:42:00) [4]
> 64K / Sizeof(Integer)
Не, там хитрее. Куски памяти, получаемые от DOS, имели заголовок (Memory Control Block), размером, кажется, 16 байт
Anatoly Podgoretsky (2007-11-22 19:40:00) [5]> DiamondShark (22.11.2007 19:10:06) [6]
Размер экстента (сегмента) and fff0 div SizeOF(Element) - 16 байт на сегмент
То есть максимальный размер 65520 байт
Che Vingam (2007-11-22 19:31:00) [6]не_помню_скока_там_ограничение
64K / Sizeof(Integer)
DiamondShark (2007-11-22 19:10:00) [7]
> Например, так:
>
> Type
> TMyArray = array[0..0] of Integer;
Лучше
TMyArray = array[0..не_помню_скока_там_ограничение] of Integer;
Не стоит вносить лишнее требование к окружению (обязательность отключения range check).
Ученик_2008 (2007-11-22 17:22:00) [8]Amoeba, так тоже пойдёт, большое спасибо!!!
Amoeba (2007-11-22 17:16:00) [9]Это, разумеется, "псевдо-динамический" массив. Настоящие динамические массивы появились только в Delphi4.
Amoeba (2007-11-22 17:14:00) [10]Например, так:
Type
TMyArray = array[0..0] of Integer;
PMyArray = ^TMyArray;
var
MyArray: PMyArray;
N: Integer;
....
GetMem(MyArray, N * SizeOf(Integer));
MyArray^[I] := 100;
...
FreeMem(MyArray);
Ученик_2008 (2007-11-22 17:10:00) [11]Жаль что нет, это разработчики серьёзно упустили, ну да ладно, нет так нет)
Джо (2007-11-22 17:07:00) [12]В Turbo Pascal динамических массивов нет.