Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
ВнизУказали на динамические массивы Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.046 c