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

Definisanje pointera

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

[ Pregleda: 1498 | Odgovora: 5 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

djordje
Đorđe Mijailović
E2, FTN Novi Sad
Novi Sad

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

Sajt: www.diy-electronic-projec..


Profil

icon Definisanje pointera05.01.2005. u 03:15

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
05.01.2005. u 03:15 

sasas
Saša Slavnić
radim za neke švabe

Član broj: 35478
Poruke: 614
195.246.3.*



Profil

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

ss.
When something is hard to do, then it's not worth doing.
05.01.2005. u 04:57 

Srki_82
Srdjan Tot
Me @ My Home
Ljubljana

Član broj: 28226
Poruke: 1402
82.208.201.*

ICQ: 246436949


Profil

icon Re: Definisanje pointera05.01.2005. u 07:29
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)



DirectX na srpskom | GLScene na srpskom

There are only 10 types of people in this world; those who understand binary and those who don't.
05.01.2005. u 07:29 

Rapaic Rajko
programer, Grappolo
Bgd

Član broj: 4105
Poruke: 370
217.119.242.*



Profil

icon Re: Definisanje pointera05.01.2005. u 08:56
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
05.01.2005. u 08:56 

IgLo
Igor Lovric
Sremski Karlovci

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

Sajt: lovric.narod.ru


Profil

icon Re: Definisanje pointera05.01.2005. u 12:19
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.
05.01.2005. u 12:19 

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

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

Sajt: localhost


Profil

icon Re: Definisanje pointera05.01.2005. u 13:46
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.
05.01.2005. u 13:46 

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

[ Pregleda: 1498 | Odgovora: 5 ]

Postavi temu Odgovori

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