Új hozzászólás Aktív témák

  • _Petya_

    őstag

    válasz Jester01 #1047 üzenetére

     

    struct elem * Beletesz(struct elem *e,int szam) {
    struct elem *seged;
    seged = (struct elem *)malloc(sizeof(struct elem)) ; // csinalunk egy uj elemet
    (seged->csat) = e; // aminek a pointere a sor elso elemere mutat
    e = seged; // a sorra mutato pointert beallitjuk az uj elemre
    (seged->sorszam) = szam ; // es kitoltjuk az ereteket
    if (szam != 0)printf(''beletesz: %d'',szam) ;
    return e;
    }

    int Kivesz(struct elem **e) {
    struct elem *seged1; // ket segedpointerunk lesz
    struct elem *seged2;
    seged2 = *e; // seged2 az utolso elotti, seged 1 az utolso pont (illetve most az elso 2)
    if (seged2 != NULL) { // ha van a sorban elem
    if (seged2->csat != NULL) { // es legalabb ketto elem van a sorbwn
    seged1 = seged2->csat;
    while(seged1->csat != NULL) { // mindket pointerrel jobbra lepunk a lancban
    seged2 = seged1;
    seged1 = (seged1->csat);
    }
    seged2->csat=NULL;
    printf(''kivesz: %d'',seged1->sorszam) ;
    return (seged1->sorszam); // vegigmegyunk, amig seged1->csat == 0
    } // es visszaterunk seged1 ertekevel, seged2 lesz a lanc vege
    else { // ha csak egy elem van, akkor kivesszuk, e-t null-ra allitjuk (ures)
    *e = NULL;
    printf(''kivesz: %d'',seged2->sorszam) ;
    return (seged2->sorszam);
    }
    }
    return 0;
    }



    Átírtam így, de

    x = Kivesz(&asz);

    -nél elszáll, m sőt itt is :

    asz = Beletesz(asz,a) ;
    j = asz;
    fprintf(kifile,''%d '',asz->sorszam) ;

    szeirntem így is valami baja van. Mi lehet a gond?

    Petya

    Fontos feladatot soha ne bízz olyan gépre, amit egyedül is fel tudsz emelni!

Új hozzászólás Aktív témák