Главная страница
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.024 c
15-1194979068
Andrey_rus
2007-11-13 21:37
2007.12.16
Программа для определения загрузки процессора


15-1195265678
Riply
2007-11-17 05:14
2007.12.16
IExplorer 7. Добавление текста в отображаемую страницу.


15-1195316595
guav
2007-11-17 19:23
2007.12.16
Быстрая сортировка :-)


3-1187063232
Ulugbek
2007-08-14 07:47
2007.12.16
Как динамический создать агрегатные поля TClientdataset


15-1195331712
Petr V. Abramov
2007-11-17 23:35
2007.12.16
Себестоимость и амортизация