( apal | 2007. 11. 21., sze – 21:29 )

Maga't a put_queue() fv-t teljesen felesleges egy plusz indirekcioval definialnod, eleg igy:


put_queue(queue_ *q,int x){
        if (q){
                printf ("nem ures\n");

        }else{
                printf ("ures\n");
//                q=malloc(sizeof(queue_));
//                q->ui_element=x;
        }
        if (q){
                printf ("nem ures\n");
        }

}

akkor van/lenne ertelme annak, hogyha *q = ... ertekadas is van! a q-> ertekadas az mar eleve egyszeresen indirekt, tehat valoban ha csinalsz egy


queue *q;
q=malloc(sizeof(queue));
put_queue(q,137);

hivast, akkor ez ugyanugy feltolti a q objektumot, de statikusan is lehet csinalni:


queue q;
put_queue(&q,137);

a lenyeg ugyanaz.

Es pont emiatt a main()-edben levo" ize is nagyon felreertheto", hasznald valamelyik megoldast a fenti ketto" kozul. Szerintem legalabbis.

szerk: bocs, a kikommentezett reszt ignoraltam, ott van *q ertekadas. ettol fuggetlenul nezd meg, hogy a te problemadra nem-e egyszerubb egy indirekcioval kevesebb, akkor azert konnyebben atlathato' a dolog.

A.