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

Pomoc oko jednostruko spregnutih listi i pokazivaca

[es] :: C/C++ programiranje :: C/C++ za početnike :: Pomoc oko jednostruko spregnutih listi i pokazivaca

[ Pregleda: 2997 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Brolly

Član broj: 66668
Poruke: 363
*.dialup.neobee.net.



Profil

icon Pomoc oko jednostruko spregnutih listi i pokazivaca28.12.2007. u 18:33 - pre 198 meseci
E ovako.... Radi vezbanja listi, napisao sam program koji vrsi inicijalizaciju liste, unos novih elemenata, brisanje elementa, brisanje cele liste i listanje. Medjutim nisu mi svi delovi koda jasni, posto sam napisao delom samostalno, delom potpomazuci se drugim kodom slicnog zadatka. Dakle prvo, struktura je sledeca:


Code:

typedef struct cvor
{
    char ime[MAX_STRING];
    char prezime[MAX_STRING];
    int indeks;
    struct cvor *sledeci;
}
Tcvor;

Dakle, od informacija unosi se ime, prezime i br indeksa studenta. A onda odmah ispod toga, definisano je:
Code:

typedef Tcvor *Pcvor;

Ispod toga deklarisano je sledece:
Code:

Pcvor glava;

Pitanje br. 1: Da li je Pcvor glava; ekvivalentno sa Tcvor *glava; ?

Ok, dalje:


Ispisuje se meni i preko switch-a se vrsi izbor:
Code:

switch(izbor)
        {
            case 1: inicijalizacija(&glava); break;
            case 2: unos(&glava); break;
            case 3: listanje(&glava); break;
            case 4: brisanje_el(&glava); break;
            case 5: brisanje_liste(&glava); break;
            default: greska=1; break;

2. pitanje: Glava je deklarisana kao pokazivac na tip Tcvor. Zasto ide adresni operator & u pozivu f-ja? Da li bi moglo bez toga, samo npr. inicijalizacija(glava)?

3. Kada se pri dodelama napise *glava, misli se na sadrzaj na koji ona pokazuje? A kad se stavi &? A sta kad se ne stavi nista? Ovo me je oduvek bunilo.
...
 
Odgovor na temu

Sephiroth?
Balkan @ net

Član broj: 79406
Poruke: 82
*.bi2.dlp232.bih.net.ba.



Profil

icon Re: Pomoc oko jednostruko spregnutih listi i pokazivaca28.12.2007. u 19:57 - pre 198 meseci
Prvo, trebao bi jednostavno malo ponoviti gradivo oko pointera… Nisam C programer, tako da ti oko ovih struktura ne mogu puno pomoci bas za ovaj konkretan primjer ...

2: funkcije ti vjerovatno (posto nisi stavio code) kao argumenat primaju pokazivace, a glava ti je staticki elemenat, a ne pokazivac, pa zato moras poslati adresu glave (& simbol) svojoj funkciji da bi ga ona primila kao pokazivac (u argumentu).

3:

- & - adresa varijable
- *pokazivac prikazuje sadrzaj pokazivaca, znaci sadrzaj na koji pokazivac pokazuje
- kad se ne stavi nista, onda se prikazuje adresa na koju pokazivac pokazuje
- kad se stavi &pokazivac onda se dobije adresa POKAZIVACA, a ne sadrzaja
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
195.252.105.*



+7 Profil

icon Re: Pomoc oko jednostruko spregnutih listi i pokazivaca28.12.2007. u 21:32 - pre 198 meseci
Citat:
Pitanje br. 1: Da li je Pcvor glava; ekvivalentno sa Tcvor *glava; ?

Jeste
Npr
Code:

#include <iostream.h>

typedef char CHAR;          // Char tip
typedef CHAR * PSTR;      // Pointer na Char (char *)

int main()
{
    char* ptIme1 = "Ime1";
    PSTR  ptIme2 = "Ime2";
    cout <<  ptIme1 << endl;
    cout <<  ptIme2 << endl;
    return 0;
}

Ostalo je odgovorio @Sephiroth?
Pozdrav
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: Pomoc oko jednostruko spregnutih listi i pokazivaca

[ Pregleda: 2997 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

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