[ jankie88 @ 05.04.2007. 15:31 ] @
Ja mozda ne znam mnogo o programiranju u c-u, ali sam gledao kod i ne mogu da provalim o cemu se radi...
Iskompajlira ga savrseno, ali kada pokrenem program on pukne i pojavi mi se onaj prozor send/don't send report to microsoft...
Ubacio sam kod i u dev-c++ i code:blocks (oba su MingW32), isto se desava...
da li bi trebalo nesto da dodam...

Code:

#include <stdio.h>
#include <stdlib.h>
struct cvor{
       int a;
       int b;
       struct cvor *l;
       struct cvor *d;
};
struct cvor* ubaci(struct cvor *koren, int j){
       struct cvor *t, *p, *pom;
       int k = 0;
       t = koren;
       p = NULL;
       while((t) && (!k)){
                p = t;
                if (j < t->a) t = t->l;
                else if (j > t->a) t = t->d;
                else k = 1;
       };
       if (k = 1){
             t->b++;
             return koren;
       };
       pom = (struct cvor*)malloc(sizeof(struct cvor));
       pom->a = j;
       pom->b = 1;
       if (!p) return pom;
       if (j < p->a) p->l = pom;
       else p->d = pom;
       return koren;
};
int main(int argc, char *argv[]){
    struct cvor *t = NULL;
    t = ubaci(t, 1);
    printf("%d\n", t->a);
    system("PAUSE");
    return 0;
}

please help!!!
[ tosa @ 06.04.2007. 02:58 ] @
Napravi debug verziju programa i vidi gde/zašto puca.
[ Dralac @ 06.04.2007. 13:02 ] @
U ovome djelu koda si promenjivoj "k" dodjeljivao 1, a valjda si trebao da ispitas (sto se pise sa dva znaka "= =") da li je k==1;
Posle te prepravke meni je radio

while((t) && (!k)){
p = t;
if (j < t->a) t = t->l;
else if (j > t->a) t = t->d;
else k = 1;
}
_____________________
if (k == 1)
_____________________
{
t->b++;
return koren;
}
pom = (struct cvor*)malloc(sizeof(struct cvor));
pom->a = j;
pom->b = 1;
if (!p) return pom;

[ jankie88 @ 06.04.2007. 14:20 ] @
Da, i meni je radilo...
Možda opet nešto ne vidim, ali kada ubacim...
Čisto radi provere...
Code:

      pom = (struct cvor*)malloc(sizeof(struct cvor)); // ovo je već bilo
      if (!pom){
        printf("greshka\n");
        system("PAUSE");
        exit(1);
      };


i u main-u
Code:

    int ik;
    for(ik = 0; ik < 7; ik++){
      t = ubaci(t, 7 - ik);
      t = ubaci(t, 8 + ik);
    };


i opet ne radi...