Главная страница
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.017 c
6-46460
Diablo
2002-01-31 17:10
2002.04.15
вопрос по UDP


3-46276
Stranger
2002-03-25 16:01
2002.04.15
Хранение файлов различных типов в полях БД MS SQL Server


1-46365
Glonia Zbanov
2002-04-01 14:28
2002.04.15
Как использовать GetScreenWidth


6-46475
Serg001
2002-02-01 16:35
2002.04.15
Мой ip адрес.


1-46421
DimaIv
2002-04-02 19:07
2002.04.15
Как обратиться к кокретной строке в файле.