Главная страница
    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.035 c
3-1080138461
Goida
2004-03-24 17:27
2004.04.25
Проблема открытия БД под WIN_98


1-1081415231
Vovas
2004-04-08 13:07
2004.04.25
Как привести форму-предок к типу формы-потомка?


1-1081284353
Yanis
2004-04-07 00:45
2004.04.25
Файлы, файлы.


11-1042971278
Igit
2003-01-19 13:14
2004.04.25
Горизонтальный скролл в ListBox


1-1081265591
Pahan_
2004-04-06 19:33
2004.04.25
Рисование на TToolBar





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