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

nesto u vezi s pointerima

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

[ Pregleda: 648 | Odgovora: 5 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

kish
NS

Član broj: 91320
Poruke: 42
195.252.85.*

ICQ: 204


Profil

icon nesto u vezi s pointerima26.07.2006. u 15:39
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;
}
26.07.2006. u 15:39 

Dragi Tata

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

Sajt: www.novetehnologije.com


Profil

icon Re: nesto u vezi s pointerima26.07.2006. u 16:04
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();

26.07.2006. u 16:04 

kish
NS

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

ICQ: 204


Profil

icon Re: nesto u vezi s pointerima26.07.2006. u 16:40
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.
26.07.2006. u 16:40 

Dragi Tata

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

Sajt: www.novetehnologije.com


Profil

icon Re: nesto u vezi s pointerima26.07.2006. u 17:20
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);
...

26.07.2006. u 17:20 

kish
NS

Član broj: 91320
Poruke: 42
195.252.85.*

ICQ: 204


Profil

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

kish
NS

Član broj: 91320
Poruke: 42
195.252.85.*

ICQ: 204


Profil

icon Re: nesto u vezi s pointerima26.07.2006. u 17:52
Radi!!! Hvala!
26.07.2006. u 17:52 

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

[ Pregleda: 648 | Odgovora: 5 ]

Postavi temu Odgovori

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