Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.12.16;
Скачать: [xml.tar.bz2];

Вниз

Объявление дин. массива в 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.05 c
4-1180778610
gray_falcon
2007-06-02 14:03
2007.12.16
не могу запустить сервис


11-1174226435
D[u]fa
2007-03-18 17:00
2007.12.16
Пара вопросов о PControl


15-1195461860
lehich
2007-11-19 11:44
2007.12.16
html и использование баз ACCESS


2-1193993327
r.o.o.t
2007-11-02 11:48
2007.12.16
Почему такое бывает


8-1171049042
Pa5ha
2007-02-09 22:24
2007.12.16
Скины





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский