Hirdetés

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

  • OddMan
    őstag

    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);
    }

    Közben rájöttem, hogy mi a hiba, de az a bemásolt kódból nem derül ki.
    A probléma az, hogy a destruktor kétszer hívódik meg, így a delete a második lefutásakor kivételt dob. Talán úgy lehet ezt megszüntetni, hogy NULL-ra állítom az első törlés (delete) után a mutató értékét és egy if-el ellenőrzöm, ha nulla, akkor már nem futtatom le a delete-et még egyszer.


    [Szerkesztve]

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