Вниз
Скачать: CL | DM;

Объявление дин. массива в Pascal!   Найти похожие ветки 

 
Ученик_2008   (2007-11-22 17:06) [0]

Подскажите пожалуйста, как объявить динамический массив в Turbo Pascal, не в Delphi!


 
Джо ©   (2007-11-22 17:07) [1]

В Turbo Pascal динамических массивов нет.


 
Ученик_2008   (2007-11-22 17:10) [2]

Жаль что нет, это разработчики серьёзно упустили, ну да ладно, нет так нет)


 
Amoeba ©   (2007-11-22 17:14) [3]

Например, так:

Type
  TMyArray = array[0..0] of Integer;
  PMyArray = ^TMyArray;
var
  MyArray: PMyArray;
  N: Integer;
....  
 GetMem(MyArray, N * SizeOf(Integer));
 MyArray^[I] := 100;
...
 FreeMem(MyArray);


 
Amoeba ©   (2007-11-22 17:16) [4]

Это, разумеется, "псевдо-динамический" массив. Настоящие динамические массивы появились только в Delphi4.


 
Ученик_2008   (2007-11-22 17:22) [5]

Amoeba, так тоже пойдёт, большое спасибо!!!


 
DiamondShark ©   (2007-11-22 19:10) [6]


> Например, так:
>
> Type
>   TMyArray = array[0..0] of Integer;

Лучше
TMyArray = array[0..не_помню_скока_там_ограничение] of Integer;

Не стоит вносить лишнее требование к окружению (обязательность отключения range check).


 
Che Vingam   (2007-11-22 19:31) [7]

не_помню_скока_там_ограничение
64K / Sizeof(Integer)


 
Anatoly Podgoretsky ©   (2007-11-22 19:40) [8]

> DiamondShark  (22.11.2007 19:10:06)  [6]

Размер экстента (сегмента) and fff0 div SizeOF(Element) - 16 байт на сегмент
То есть максимальный размер 65520 байт


 
DiamondShark ©   (2007-11-22 19:42) [9]


> 64K / Sizeof(Integer)

Не, там хитрее. Куски памяти, получаемые от DOS, имели заголовок (Memory Control Block), размером, кажется, 16 байт


 
Che Vingam   (2007-11-22 21:33) [10]


> Anatoly Podgoretsky

Упс, действительно. Уже все забыл :-(


 
Anatoly Podgoretsky ©   (2007-11-22 21:37) [11]

> Che Vingam  (22.11.2007 21:33:10)  [10]

Ну как сказали 16 байт это или диспетчер памяти или особенности сегментации.


 
Германн ©   (2007-11-23 01:57) [12]


> Ученик_2008   (22.11.07 17:06)
>
> Подскажите пожалуйста, как объявить динамический массив
> в Turbo Pascal, не в Delphi!
>

Ну и ещё, если потребуется массив более 64К, рекомендую обратить внимание на Turbo Professional.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.016 c
2-1195630538
Neket
2007-11-21 10:35
2007.12.16
Округление


15-1195183314
Slider007
2007-11-16 06:21
2007.12.16
С днем рождения ! 16 ноября 2007 пятница


4-1180073252
leonidus
2007-05-25 10:07
2007.12.16
Как перерисовать Scroll у TRichEdit`а ?


1-1190823390
Игорь_З
2007-09-26 20:16
2007.12.16
Мерцание ListView


15-1195416112
Torry
2007-11-18 23:01
2007.12.16
www.torry.net - 11 лет




   Наверх