Главная страница
    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.47 MB
Время: 0.033 c
7-1078344685
Raki
2004-03-03 23:11
2004.04.25
Drag`n`Drop до того, как пользователь отпустит кнопку мыши


14-1080757008
gn
2004-03-31 22:16
2004.04.25
хочу похвастатся моя любимая написала первую программу


9-1068044148
|dRake|
2003-11-05 17:55
2004.04.25
и ещё раз о PowerDraw :)


3-1080567190
venus
2004-03-29 17:33
2004.04.25
Чтение данных из файла в IB-базу :)


9-1067169108
Dmk
2003-10-26 14:51
2004.04.25
Умножение матриц





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