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

Вниз

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

 
Ник ©   (2002-12-03 14:35) [0]

Доброе время суток. Интересует следующее:

type

Ar2d = array of array of double;
Ar1D = array of double;

var
Form1: TForm1;
x : Ar2d;
y : Ar1d;
p1, p2 : pointer;
p3, p4 : ^double;

procedure TForm1.Button1Click(Sender: TObject);
begin
SetLength(x, 100, 100);
SetLength(y, 100);
p1 := x;
p2 := y;
p3 := @x[0,0];
p4 := @y[0];
end;


end.

Адреса p2=p4 (в случае одномерного массива), а p2<>p4 (для многомерного массива)
С чем это связано?


 
MBo ©   (2002-12-03 14:50) [1]

C организацией многомерных дин. массивов, естественно
p :array[1..5] of pointer;
i:integer;
begin
SetLength(x, 100, 100);
SetLength(y, 100);
p[1] := x;
p[2] := @x[0];
p[3] := @x[0,0];
p[4] := y;
p[5] := @y[0];
for i:=1 to 5 do
Memo1.Lines.Add(inttohex(cardinal(p[i]),8));

вторая строка даст тот же адрес, что и первая, поскольку элементы первого уровня двумерного массива X, располагающиеся по адресу самого X, есть сами по себе динамические одномерные массивы, или указатели на сам данные. Заметь, что при
SetLength(x,1,что нибудь)
все первые адреса совпадут



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

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

Наверх




Память: 0.46 MB
Время: 0.015 c
1-36187
volph7777
2002-12-04 10:39
2002.12.12
цветной StringGrid


1-36214
ltolean
2002-12-01 14:19
2002.12.12
Program Icon


6-36318
Flex
2002-09-29 09:25
2002.12.12
Как закачать файл с сервера, если сервер проверяет поле REFERER?


1-36224
Tankist
2002-12-01 21:19
2002.12.12
Удаление элемента массива


1-36179
iNew
2002-12-04 08:12
2002.12.12
Вопрос по компоненте AsyncPro. Не могу понять почему не