Hirdetés

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

  • Nedudgi
    aktív tag

    Van egy C++-os OOP-s kérdésem.
    Van egy olyan problémám, hogy dinamikusan foglalok memóriát a new-val és amikor a delete-el fel akarom szabadítani, akkor kivételt kapok. Program futtatása alatt semmi gond nincsen, csak amikor ki akarok lépni, akkor meghívódik a destruktor és jön is a csúnya felkiáltójeles ablak. Mit rontottam el?
    A forrás egy részét bemásolom alulra. Előre is köszi a segítséget. :R


    class osztaly
    {
    private:
    typedef struct
    {
    int flag;
    float vec3[3];
    float vec2[2];
    int bone;
    }model_vertex_t;


    model_vertex_t *mv_ptr;


    public:
    osztaly(void);
    ~osztaly(void);
    void fg(void);
    }

    osztaly::~osztaly(void)
    {
    //mem felszabadítás
    delete[] mv_ptr; //ITT KIVÉTEL KELETKEZIK! MIÉRT?????
    }

    void osztaly::fg(void)
    {
    //100 elemű model_veretex_t típusú tömb foglalása
    mv_ptr = new model_vertex_t[100];
    }




    [Szerkesztve]

    Ahogy érzed, de a


    typedef struct

    {

    int flag;

    float vec3[3];

    float vec2[2];

    int bone;

    }model_vertex_t;

    nem egészen értem hogy mit akarsz.
    Nem erre gondoltál egész véletlenül?


    class osztaly

    {

    private:

    struct model_vertex_t

    {

    int flag;

    float vec3[3];

    float vec2[2];

    int bone;

    };



    model_vertex_t *mv_ptr;



    public:

    //osztaly();

    ~osztaly();

    void fg();

    };


    osztaly::~osztaly()

    {

    //mem felszabadítás

    delete(mv_ptr);

    }


    void osztaly::fg()

    {

    //100 elemű model_veretex_t típusú tömb foglalása

    mv_ptr = new model_vertex_t[100];

    }

    void main ()
    {
    osztaly *a;
    a= new osztaly;
    a->fg();
    delete(a);
    }

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