Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Definisanje pointera

[es] :: Pascal / Delphi / Kylix :: Definisanje pointera

[ Pregleda: 4612 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

djordje
Novi Sad

Član broj: 3704
Poruke: 1725
*.vdial.verat.net.



+3 Profil

icon Definisanje pointera05.01.2005. u 03:15 - pre 234 meseci
Sta se prvo definise? Pokazivac na neki tip ili taj tip? Meni nekako logicno da se prvo definise taj tip pa onda pokazivac, ali mi se cini da sam negde video obrnuto
 
Odgovor na temu

sasas
Saša Slavnić
radim za neke švabe

Član broj: 35478
Poruke: 617
195.246.3.*



Profil

icon Re: Definisanje pointera05.01.2005. u 04:57 - pre 234 meseci
U pravu si, prvo tip pa pointer.

ss.
When something is hard to do, then it's not worth doing.
 
Odgovor na temu

Srki_82
Srdjan Tot
Me @ My Home
Ljubljana

Član broj: 28226
Poruke: 1403
82.208.201.*

ICQ: 246436949


+10 Profil

icon Re: Definisanje pointera05.01.2005. u 07:29 - pre 234 meseci
Code:
type
  PKlijent = ^TKlijent;
  TKlijent = record
    Ime, Prezime: String;
    ID: Cardinal;
    Prethodni, Sledeci: PKlijent;
  end;

Ovo je sasvim OK i lepo ce da se iskompajlira (prvo pointer, pa onda tip :P)



 
Odgovor na temu

Rapaic Rajko
Bgd

Član broj: 4105
Poruke: 810
217.119.242.*



+62 Profil

icon Re: Definisanje pointera05.01.2005. u 08:56 - pre 234 meseci
Ovo zadnje je neka vrsta forward deklaracije, i tako kako je napisano ce da radi. Ali probaj da ubacis nesto izmedju te dve deklaracije (da ih razdvojis), pa vidi sta se onda desava...

Rajko
 
Odgovor na temu

IgLo
Igor Lovric
Sremski Karlovci

Član broj: 19524
Poruke: 129
*.neobee.net.

Sajt: www.unicornsoft.net


Profil

icon Re: Definisanje pointera05.01.2005. u 12:19 - pre 234 meseci
Evo sta kaze cika Stephen O'Brien o ovoj pojavi :

Citat:

Posto se dinamicka memorija koristi za smestanje velikih i slozenih tipova podataka, pokazivacke promenljive se stoga generalno koriste za manipulaciju ovakvih tipova podataka. Definicija jedne kompleksne strukture podataka je procedura koja se izvodi u dva koraka:

Code:

Type
   CustPtr =^CustRec;
   CustRec = Record
      Name : String [25];
      Address : String [30];
      City : String [30];
      State : String [2];
      Zip : String [5];
   End;

Var
   Cust : CustPtr;


U ovom primenu iskaz CustPtr = ^CustRec; definise CustPtr kao pokazivac koji ukazuje na CustRec. Ovde treba imati u vidu da custRec u ovom momentu jos nije definisan. Deklaracija pokazivaca je jedan od retkih slucajeva u okviru Turbo Pascal-a gde se dozvoljava pozivanje na strukturu podataka pre nego sto je ona definisana. Promenljiva Cust se potom definise tipom CustPtr.


Sve u svemu,... mozda je i moguce uraditi kontra (nikada nisam probao), ali svi rade (ili bi bar trebali da rade) na ovaj nacin.
 
Odgovor na temu

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
*.83.beocity.net.

Sajt: localhost


+5 Profil

icon Re: Definisanje pointera05.01.2005. u 13:46 - pre 234 meseci
srki82 je dao primer, ali niko da objasni zašto se to tako radi..

ako npr želite da pravite povezanu listu (linked list), ili drvo, red, stek, tj bilo koju dinamički memorisku strukturu, ovo vam je neophodno.

Code:
PČlan = ^TČlan;
TČlan = record
    Vrednost: integer;
    Sledeći: PČlan;
end;


da niste prvo definisali PČlan, ne bi mogli da definišete polje Sledeći.

a inače, kada pređete sa pointera i rekorda na klase i objekte (tj sa TP na Delphi), više nema potrebe za ovim, jer se klase vrlo regularno mogu deklarisati unapred.
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Definisanje pointera

[ Pregleda: 4612 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.