Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.12.16;
Скачать: 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 вся ветка

Текущий архив: 2007.12.16;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.025 c
2-1195662515
Jolik
2007-11-21 19:28
2007.12.16
Посоветуйте, как правильнее организовать веб-сервер...


2-1195568994
Neket
2007-11-20 17:29
2007.12.16
Точка вместо запятой


2-1195649367
{ент
2007-11-21 15:49
2007.12.16
List box


2-1195575763
Angela
2007-11-20 19:22
2007.12.16
Edit в MSExcel


15-1195137044
Reindeer Moss Eater
2007-11-15 17:30
2007.12.16
Приколы реализации ADO в D7