Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.04.15;
Скачать: CL | DM;

Вниз

Динамеческие массивы   Найти похожие ветки 

 
Miwa ©   (2002-04-03 21:42) [0]

Возможна ли работа с subj в Паскале 7.0 или более ранних версиях? Если да, то как?


 
Miwa ©   (2002-04-03 22:00) [1]

Тоесть, конечно, динам_И_ческие :о)


 
lipskiy ©   (2002-04-03 22:06) [2]

Имхо, нет.
Тоже была такая потребность - не нашел способа, кажется, никак нельзя.


 
Miwa ©   (2002-04-03 22:16) [3]

В принципе, можно вроде создавать массивы в процедуре типа

Procedure MyProc(arr:array[a..b]of sometype)

Но это не очень красиво, по-моему. Никто ничего получше не знает?


 
Лёша ©   (2002-04-03 22:21) [4]

Вот у Кулибы пример:


Const

MaxBooleans = (High(Cardinal) - $F) div sizeof(boolean);

Type

TBoolArray = array[1..MaxBooleans] of boolean;
PBoolArray = ^TBoolArray;

Var

B : PBoolArray;
N : integer;

BEGIN

N := 63579;
{= получение памяти под динамический массив.. =}

GetMem(B, N*sizeof(boolean));
{= работа с массивом... =}

B^[3477] := FALSE;
{= возвращение памяти в кучу =}
{$IFDEF VER80}

FreeMem(B, N*sizeof(boolean));
{$ELSE}

FreeMem(B);
{$ENDIF}
END.


 
KaPaT ©   (2002-04-03 22:49) [5]

1)Надо создать новый тип в разделе type, где будет описываться этот массив.
type
massive = array [1..100] of Integer;
2)А дальше как с динамическими переменными
var
example_mas : ^massive
Вот! Что-нибудь еще?


 
Malder ©   (2002-04-03 22:55) [6]

Miwa, ты уверен в том, что говоришь ?

Procedure MyProc(arr:array [a..b]of sometype)<>/code

По моему, объявление размерности массива при объявлении подпрограмы невозможно. В Delhi так нельзя. Неужели в Pascal 7 так можно ?!


 
KaPaT ©   (2002-04-03 22:56) [7]

И еще чуть-чуть:
For i:=1 to 100 do GetMem(example_mas^[i],SizeOf(Integer)) - выделение памяти под массив

example_mas^[2]:=5 -обращение к элементу массива (к его значению)


 
KaPaT ©   (2002-04-03 23:02) [8]

Кстати можно в Паскале 7 в процедурах делать массивы открытого типа:
Function Name(var Mas:array of Integer) : Integer;


 
Miwa ©   (2002-04-03 23:42) [9]

2 Malder © (03.04.02 22:55)

> Miwa, ты уверен в том, что говоришь ?

Вообще-то после твоего вопросса - нет. Кажется, я делал немного не так. Было что-то вроде

Procedure SomeProc;
Var arr:array[1..i] of sometype;

Все-таки, лет 5 назад делал, так что прости уж...

2 KaPaT ©
По-моему, хватит. Спасибо большое.


 
Anatoly Podgoretsky ©   (2002-04-04 09:57) [10]

Var arr:array[1..i] of sometype;
А ыт пробовал проверить в компиляторе, если у тебя I константа, то какое это отношение имеет к динамике, если переменная, то попробуй сначала.



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

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

Наверх




Память: 0.49 MB
Время: 0.011 c
4-46548
Beast
2002-02-13 03:58
2002.04.15
Hook


1-46382
LazorenkoX
2002-04-01 21:39
2002.04.15
Array of byte -->> Record


6-46478
ECM
2002-02-02 01:03
2002.04.15
Функция InternetDial(…) под Win2K


4-46546
avk
2002-02-13 21:40
2002.04.15
kill process


1-46330
Arhangel
2002-04-03 19:53
2002.04.15
Как поменять системную дату?