Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Structit C++

InvalidCo [29.07.2006 22:04:49]

#

Koodatessani vektorieditoria tuli typedef structien kanssa riitaa,
g++ valittaa seuraavaa:

main.cpp: In function âvoid drawpoly(kpoly)â:
main.cpp:51: error: conversion from âkline**â to non-scalar type âklineâ requested

Se palanen koodista joka tämän luultavimmin aiheuttaa:

typedef struct {
        int x,y,ax,ay,x2,y2,ax2,ay2;
        int cr, cg, cb;
} kline;

typedef struct {
        kline *l[100];
        int cr, cg, cb;
        int x, y;
} kpoly;

Miten tämän voi korjata?
(Koko koodi toimii kyllä jos l-muuttujasta ei tee arrayta, joka on perin outoa.)

Sisuaski [29.07.2006 23:08:28]

#

Mikäli nyt oikein ymmärsin(=arvasin; et ole sisällyttäny mm. virheen aiheuttamaa kohtaa viestiisi) tilanteen, sinulla on 2 virhettä:

1. Mikäli kpoly-struktin nyt on tarkoitus esittää nimensä mukaisesti polygonia, pitäisi sen sisältää joukko viivoja, ei osoittima viivoihin. Eli kpoly-struktin määrittelyyn siis

kline l[100];

eikä

kline* l[100];

.

2. main.cpp-tiedoston rivillä 51 sattunut virhe, jossa olet todennäköisesti viitannut koko taulukkoon, kun olisi pitänyt viitata vain yhteen sen jäsenistä.

InvalidCo [29.07.2006 23:45:31]

#

moka *hups;

Korjasin osoittajan, rivin numero 51 ja toimii.

Kiitos.

koo [30.07.2006 14:46:04]

#

Muuten, jos meinaa koodailla C++:aa, typedef struct -jutut ovat turhia kiemuroita. Esmes

struct kline {
        int x,y,ax,ay,x2,y2,ax2,ay2;
        int cr, cg, cb;
};

struct kpoly {
        kline l[100];
        int cr, cg, cb;
        int x, y;
};

on syntaksin kannalta selkeämpi.

Muuten nro 2, onko polygoni ohjelmassasi sellainen värkki, jossa on aina justiinsa sata viivaa? Tuo tyypinmäärittely nimittäin sanoo juurikin niin, ja minä olen pikkuisen epäileväinen.

Käytetyt rakenteet pitäisi aina tehdä aiotun tarkoituksen mukaan ja siihen C++ antaa aika hyvät keinot. Jossain kirjassakin annettiin sellainen koodausohje, että "sano mitä tarkoitat; ymmärrä mitä sanot".

Metabolix [30.07.2006 19:07:34]

#

Hassu polygoni sellainen, jossa on sata vapaavalintaista viivaa. Nehän voivat silloin vaikka lähteä kaikki samasta pisteestä eri suuntiin, ja mikäs polygoni se sellainen muka on? Kärkipisteiden avulla nuo on järkevämpi ilmaista.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta