Главная страница
    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.45 MB
Время: 0.042 c
1-1079536055
Samael6
2004-03-17 18:07
2004.04.11
Нужна помощь по методам декомпрессии


4-1075492150
mixrud
2004-01-30 22:49
2004.04.11
Как получить текущую область обновления рабочего стола


1-1082528834
[BAD]Angel
2004-04-21 10:27
2004.04.11
иконка из ярлыка


1-1082446133
Talle
2004-04-20 11:28
2004.04.11
Компонента как параметр процедуры.


1-1082128774
Руслан Гиричев
2004-04-16 19:19
2004.04.11
PageControl, как быть....





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский