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

nesto u vezi s pointerima

[es] :: C/C++ programiranje :: C/C++ za početnike :: nesto u vezi s pointerima

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

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

kish
NS

Član broj: 91320
Poruke: 44
195.252.85.*

ICQ: 204


Profil

icon nesto u vezi s pointerima26.07.2006. u 15:39 - pre 156 meseci
El moze neko da mi objasni sta ne valja u sledecem kodu? Znam da je nesto u vezi sa funkcijom Create, al ne znam tacno sta...

Code:

#include <iostream>
using namespace std;
#include <stdlib.h>

struct node
{
    int x;
    node *next;
};

node *root;

void print(node *l)
{
    cout << l->x << endl;
}

void Create(node *l)
{
    l=new node;
    l->next=NULL;
    l->x=5;
}

int main()
{
    cout << "==BEGIN==" << endl;
    Create(root);
    print(root);
    cout << "==END==" << endl;

    return 0;
}
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
*.lionbridge.com.



+6 Profil

icon Re: nesto u vezi s pointerima26.07.2006. u 16:04 - pre 156 meseci
Problem je što predaješ pointer funkciji Create po vrednosti, tj. unutar funkcije se vidi kopija pointera iz main. Ili prosledi pointer na pointer, ili referencu na pointer, ili (najbolje IMHO) nemoj da prosleđuješ ništa nego vrati pointer kao rezultat funkcije i onda kaži:

Code:

root = Create();

 
Odgovor na temu

kish
NS

Član broj: 91320
Poruke: 44
*.beotel.net.

ICQ: 204


Profil

icon Re: nesto u vezi s pointerima26.07.2006. u 16:40 - pre 156 meseci
Nisam siguran dal sam razumeo u cemu je tacno problem ali sam ga resio na onaj drugi nacin ( root=Create() ). Ipak bih zeleo da znam u cemu je tacno fazon, pa ako ti nije problem da napises piece-of-code sa onim: prosledi pointer na pointer. Hvala ti u svakom slucaju.
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
*.lionbridge.com.



+6 Profil

icon Re: nesto u vezi s pointerima26.07.2006. u 17:20 - pre 156 meseci
OK. Iz glave (nisam probao da kompajliram)

Code:

void Create(node **l)
{
    *l = new node;
    (*l)->next=NULL;
    (*l)->x=5;
}

int main()
{
    cout << "==BEGIN==" << endl;
    Create(&root);
    print(root);
...

 
Odgovor na temu

kish
NS

Član broj: 91320
Poruke: 44
195.252.85.*

ICQ: 204


Profil

icon Re: nesto u vezi s pointerima26.07.2006. u 17:48 - pre 156 meseci
Mislim da sam probao na taj nacin al je kompajler nesto kenj##o zbon onog **. U svakom slucaju probacu, pa mozda proradi. THX.
 
Odgovor na temu

kish
NS

Član broj: 91320
Poruke: 44
195.252.85.*

ICQ: 204


Profil

icon Re: nesto u vezi s pointerima26.07.2006. u 17:52 - pre 156 meseci
Radi!!! Hvala!
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: nesto u vezi s pointerima

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

Postavi temu Odgovori

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