Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Динамические массивы. B: array[1..10] of array [1..20] of integer;



Было:

var

A: array[1..100] of string;

B: array[1..10] of array [1..20] of integer;

Стало можно:

var

A: array of string;

B: array of array of integer;

Декларация динамического массива (переменных A и B) не выделяет под них памяти. Память выделяется процедурой SetLength:

SetLength(A,100);

SetLength(B,10,20);

Индексация динамических массивов всегда идет от нуля.

Для освобождения памяти из-под динамического массива:

а) либо присвоить nil переменной:

A:=nil;

B:=nil;

б) либо — вызвать процедуру Finalize:

Finalize(A);

Finalize(B);

Пример:

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls;

type

TForm1 = class(TForm)

Button1: TButton;

Button2: TButton;

Label1: TLabel;

Label2: TLabel;

Button3: TButton;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Button4: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

A: array of string;

B: array of array of integer;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);

begin

close

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

SetLength(A,100);

SetLength(B,10,20);

Label1.caption:='Память выделена';

end;

procedure TForm1.Button3Click(Sender: TObject);

var s:string;

begin

A[99]:='Ok';

B[9,19]:=7;

Label3.caption:=A[99];

str(B[9,19],s);

Label5.caption:=s;

end;

procedure TForm1.Button4Click(Sender: TObject);

begin

A:=nil;

Finalize(B);

Label1.caption:='Память освобождена';

end;

end.





Дата публикования: 2014-11-29; Прочитано: 269 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...