Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Объявление дин. массива в 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 динамических массивов нет.


Наверх

Титульная страница Поиск, карта сайта Написать письмо