Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
8-1071874628
Jack
2003-12-20 01:57
2004.04.25
Мастера, Нужен алгоритм ...


1-1081163428
Dysan
2004-04-05 15:10
2004.04.25
как узнать если свойство у обьекта?


14-1081233338
Думкин
2004-04-06 10:35
2004.04.25
С днем рождения! 6 апреля.


3-1080215520
Fishka
2004-03-25 14:52
2004.04.25
Constraint и Exists


1-1081159093
Checist [root]
2004-04-05 13:58
2004.04.25
Вытащить сылку из .lnk файла





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский