Sigdal Skrevet 5. august 2010 Del Skrevet 5. august 2010 (endret) Hva er feil med kodesnutten her (får feil mhp delete i nest siste linje) void ReplicateA() { //Kode skal lage kopier av alle objekter som blir pekt til i A[][][] og erstatte pekerne med de nye Node * Rptr; for(int i=0; i<SIZE_X; i++){ for(int j=0; j< SIZE_Y; j++){ Rptr = new Node; //kopierer membervariabler og sletter originalt Nodeobjekt Rptr->Set_var(A[j][i][AB]->Get_var()); //AB alltid=0. Rptr->Set_argvar(A[j][i][AB]->Get_argvar()); Rptr->LPtr = A[j][i][AB]->LPtr; Rptr->RPtr = A[j][i][AB]->RPtr; delete A[j][i][AB]; //sletter originale noder A[j][i][AB] = Rptr;//erstatt gammel ptr med ny } } } Endret 5. august 2010 av Sigdal Lenke til kommentar
Sigdal Skrevet 6. august 2010 Forfatter Del Skrevet 6. august 2010 (endret) Feilen her var at jeg kopierte et helt tre av noder, som var koblet vha pointere (to per node). Da jeg slettet de gamle nodeobjektene som jeg hadde kopiert fra pekte pointerne i den øverste NYE noden til nodene i det gamle treet.. Da jeg forsøkte å traversere treet fra øverste node ble det selvfølgelig krasj. Det finnes vel ikke ferdige rutiner som kan lage en eksakt kopi, med intern konsistens mhp pointere, av ett slikt tre (inkludert kopiering av nodenes variabler)? Endret 6. august 2010 av Sigdal Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå