Keresés

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

  • dabadab

    titán

    válasz aviator #5584 üzenetére

    "Azért lett pointer a tömb típusa mert később a koordináták címeire lesz szükség."

    Ez a hiba. Ha szükség van a koordináták címeire, akkor veszed a címüket a & operátorral :)

    Azzal, hogy az a tömb koordinata* típusú, azt mondtad, hogy ez egy pointert tartalmaz egy koordinata structra - és ez ezt is jelenti. Amikor létrehozod a haromszoget, akkor az létrejön, lesz benne három pointer, amik nem mutatnak sehova (pontosabba valami tök véletlenszerű helyre mutatnak), persze, hogy úgy elszáll a program.
    Kénytelen leszel feltölteni ezeket a pointereket kézzel, pl. úgy, hogy foglalsz három koordinata structot, aztán azoknak a pointereit berakod (és amikor nem kellenek, akkor majd nyomsz rájuk egy free-t is). Ez remek dolog, ha valamiért te szeretnéd foglalni ezeket vagy más helyen lefoglalt structok pointerét akarnád felhasználni, viszont úgy tűnik, hogy egyáltalán nem ezt akarod, hanem azt, hogy a fordító hozzon létre neked három koordinata structot, meg aztán majd szabadítsa is fel a megfelelő időben.

    Szóval ez kell neked:

    typedef struct haromszog
    {
    koordinata csucsok[3];

    }haromszog;

    haromszog triangle;
    scanf("%d %d %d", &(triangle->csucsok[0].x),&(triangle->csucsok[0].y),&(triangle->csucsok[0].z));

    DRM is theft

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