Форум: "Основная";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];
ВнизУдаление головы (очередь) Найти похожие ветки
← →
Аноним (2004-04-09 16:05) [0]
pTurn = ^TTurn;
TTurn = record
data: byte;
next: pTurn;
end;
{...}
pHead : pTurn;
{...}
//хочу удалить голову, делаю
pHead := pHead^.next;
{ но память-то я не освободил !!!}
Как правильно "удалить" (переместить ее на след. эл-т) голову?
← →
panov © (2004-04-09 16:11) [1]А что, еще один указатель в программе добавить нельзя?
← →
Digitman © (2004-04-09 16:13) [2]var
OldHead: pTurn;
OldHead := pHead;
pHead := pHead.next;
Dispose(OldHead);
← →
WebErr © (2004-04-09 16:15) [3]
> panov © (09.04.04 16:11) [1]
:))))
var
P: pTurn;
...
if not Assigned(pHead) then
ShowMessage("Это ты зря сюда завёл IP-pointer!");
p := pHead;
pHead := pHead^.next;
dispose(p);
← →
WebErr © (2004-04-09 16:16) [4]Sorry За "
p
" в теле и "P
" в var"е... :))))
← →
Аноним (2004-04-09 16:28) [5]Можно юзать только перемнные типа
p : ^pTurn;
Тогда как?
← →
WebErr © (2004-04-09 16:31) [6]
type
PPType = ^pType;
var
P, ppHead: PPType;
дальше так же! :))))
← →
Аноним (2004-04-09 16:31) [7]И еще нужнf процедурf удаления произвольного эл-та
p:=@pHead;
while p^<>nil do begin
if p^.data = d then begin
{???}
end;
p := @(p^^.next);
end;
← →
WebErr © (2004-04-09 16:31) [8]Блин - "Программирование для заики!" PPPPPointer!!! :))))
← →
Аноним (2004-04-09 16:33) [9]TO WebErr ©
Просто я не знаю как по-другому пробежаться по очереди не изменяя адрес pHead.
← →
WebErr © (2004-04-09 16:35) [10]{???}
p не должен быть равен pHead
тогдаq
- предыдущий элемент - это уж сам! :))))q->next = p->next
ой, то естьq^.next := p^.next;
dispose(p);
break;
Это всё в цикле, Халявщик!!! :))))
← →
WebErr © (2004-04-09 16:37) [11]Указатель - это тот же Integer, только значением его является какой-то адрес, где лежит значение того типа
TypeX
, на который он был объявленvar pXValue: ^TypeX;
← →
WebErr © (2004-04-09 16:40) [12]Это теоретически, а на практике - он гуляет где хочет, можно например изменить PInteger на PChar следующим образом:
var
A: PInteger;
B: PChar;
...
B := PChar(Pointer(A));
Чем я и пользуюсь!!! А-ХА-ХА-ХА-ХА!!! (<== ЗЛОДЕЙСКИЙ СМЕХ!)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.037 c