Hirdetés

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

  • aviator

    tag

    typedef struct koordinata
    {
    int x;
    int y;
    int z;
    } koordinata;

    void beolvas(koordinata* pont)
    {
    scanf("%d %d %d",&(pont->x),&(pont->y),&(pont->z));
    }


    int main()
    {
    int a,i;
    printf("Kerem a koordinatak szamat");
    scanf("%d",&a);
    koordinata* koord = (koordinata*) malloc(sizeof(koordinata)*a);

    for(i=0;i<a;i++)
    {
    beolvas(&koord[i]);
    }

    for(i=0;i<a;i++)
    {
    printf("(%d;%d;%d)",koord[i].x,koord[i].y,koord[i].z);
    }

    free(koord);

    return 0;
    }

    Üdv!

    A feladat itt az volt, hogy függvénnyel töltsek fel egy koordinátákat tároló struktúrát ahol a struktúrák egy dinamikus tömb elemei. A feladatot sikerült megoldani, a kód így működőképes, egy dolgot viszont nagyon nem értek: A nyíl operátort ha jól tudom akkor használjuk, ha pointeren keresztül akarjuk elérni egy struktúra mezőit. Ha pointer nélkül hivatkozunk akkor a pont operátort használjuk. Ha ez így van, akkor miért van az, hogy a függvény definíciójában a pointer típusú, pont nevű paraméteren keresztül nyíllal hivatkozok a mezőkre, alul a kiíratásnál pedig már ponttal, annak ellenére, hogy a koord változó még mindig koordináta típusú pointer?

    [ Szerkesztve ]

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