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

Вниз

Указали на динамические массивы   Найти похожие ветки 

 
dimon_programmer   (2004-03-22 13:45) [0]

Есть динамический массив
var
arr:array of integer;
parr:PIntegerArray;
Вопрос1: как заставить parr указывать на arr :parr:=@arr???
то есть как сделать так, чтобы код вроде

setlength(arr,10);
parr:=@arr;
ar[5]:=X;//допустим  Х=13
y:=parr^[5];//чтобы Y оказался 13, а не 0
Вопрос2: есть два указателя PintegerArray, и два интовых дин. массива,сделать чтобы указатели стали указывать на "соседние " массивы (поменялись массивами)


 
MBo ©   (2004-03-22 13:50) [1]

parr:=@arr[0];
Но нафига?


 
Ega23 ©   (2004-03-22 13:52) [2]

Вопрос2: есть два указателя PintegerArray, и два интовых дин. массива,сделать чтобы указатели стали указывать на "соседние " массивы (поменялись массивами)

Через 3-й указатель.


 
Serginio666   (2004-03-22 14:42) [3]

P:Pointer;
P1,p2:array of Integer;
Begin

--------
p:=P1;
Pointer(P1):=Pointer(p2);
Pointer(p2):=p;

//=======================
Этим самы мы не даем компилятору корректировать количество ссылок на массив, тем самым ускоряя обмен и сберегаемся от уничтожения массива при достижении счетчика ссылок 0.


 
REA ©   (2004-03-22 15:47) [4]

>ускоряя обмен и сберегаемся от уничтожения массива при достижении счетчика ссылок 0

Че то мне сдается, что не сберегаемся. Массив как ему и положено будет уничтожен есть на него Pointer или нет.


 
Serginio666   (2004-03-22 16:38) [5]

Уничтожаться он будет при таком варианте

P:Pointer;
P1,p2:array of Integer;
Begin

--------
p:=P1;
P1:=p2; // В данном случае будет уничтожен P1
p2:=p;
и в p2 получим ...


 
REA ©   (2004-03-22 16:42) [6]

Ну тогда сразу другая проблема - нужно самому за счетчиком следить, чтобы массив все-таки удалялся.


 
Serginio666   (2004-03-22 16:49) [7]

В варианте  [3] мы просто не даем компилятору производить никаких действий со счетчиком ссылок массива, только и всего.
И не надо не зачем следить. Ну а если очень хочется, то помоему со смещения -8 и находится счетчик ссылок, и если надо то можно его и корректировать.



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

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

Наверх




Память: 0.48 MB
Время: 0.029 c
8-1071589839
Pa5ha
2003-12-16 18:50
2004.04.11
Вопрос касается использования примеров из книги Краснова "Delphi


1-1080123367
аппельсин
2004-03-24 13:16
2004.04.11
запрос к дереву


1-1080113885
Maza_Faka
2004-03-24 10:38
2004.04.11
Dlephi8


6-1079437001
marat2
2004-03-16 14:36
2004.04.11
wininet - InternetFindNextFile - ERROR_IO_PENDING


3-1079535500
Vilux
2004-03-17 17:58
2004.04.11
Какой SQL запрос или может компонент какой поможет?