Gå til innhold

[Løst] Hjelp med å finne feil i kode


Anbefalte innlegg

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 av Sigdal
Lenke til kommentar
Videoannonse
Annonse

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 av Sigdal
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...