Цитата(osa @ 10.04.05 13:03)
вернее этим способом я освобождаю как минимумв 2 раза память ! чем я бы использовал другой метод !
А вот теперь я тебе покажу, КАК это делается, а ты мне приведешь пример того, как при этом ИЗВРАТЕ ты в 2 раза
минимум освобождаешь память... Не забудь, что в DS хранится
И массив
И список, что уже забирает лишнюю память. Кстати, это почему у тебя при массиве длинной 8 элементов длина списка = 10? Это тоже часть твоей
суперстратегии?
Код
const
n = 10;
arr: array[1 .. n] of integer =
(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
type
pint = ^integer;
plist_rec = ^list_rec;
list_rec = record
data: pint;
next: plist_rec;
end;
var
list: array[1 .. n] of list_rec;
p, head: plist_rec;
i: integer;
begin
head := @list[1];
for i := 1 to n do begin
list[i].data := @arr[i];
if i <> n then
list[i].next := @list[succ(i)]
else list[i].next := nil;
end;
p := head;
while p <> nil do begin
writeln(p^.data^);
p := p^.next
end;
end.
Теперь твоя очередь... Каким образом ЭТО экономит память по сравнению с простым использованием массива?