mar_kostas13 Δημοσ. 18 Δεκεμβρίου 2013 Δημοσ. 18 Δεκεμβρίου 2013 Καλησπέρα, έχω ενα θεμα με την διαγραφή ολόκληρου του δενδρου που έχω δημιουργήσει.Έχω την παρακάτω συνάρτηση που την καλώ στην main και της δίνω σαν όρισμα την διεύθυνση της ρίζας.η συναρτηση ειναι : freeTree(komvos* newnode) ///sthn prwth klhsh to newnode einai iso me ton root { if(newnode==NULL) return ; freeTree(newnode->left); freeTree(newnode->right); free(newnode); }//end of freeTree χρησιμοποιώ μετά-διατεταγμένη διέλευση και κάνω free τον κάθε κόμβο.για κάποιο λόγο ομως δεν γινετε σωστα η διαγραφή αφου την κάλω και στην συνέχεια καλώ μια άλλη σύνάρτηση για την εκτύπωση του δενδρου και μου εκτυπωνει κανονικα οτι εχει μεσα ο κάθε κόμβοσ εκτως απο μία σιμβολοσειρά τι εχω κανω λάθως εδώ.?
nilosgr Δημοσ. 18 Δεκεμβρίου 2013 Δημοσ. 18 Δεκεμβρίου 2013 Η μνημη απο το πρπγραμμα απελευθερωνεται, αλλα τα δεδομενα συνεχιζουν να ειναι οπως ηταν (μονο αν ξαναδεσμευτει η μνημη και γραφτει θα αλλαξουν). Εφ εσον εσυ (κακως) κρατας τις διευθυνσεις της απελευθερωμενης μνημης, μπορεις κι τη διαβαζεις. Πιθανη λυση: freeTree(komvos* newnode) ///sthn prwth klhsh to newnode einai iso me ton root { if(newnode==NULL) return ; freeTree(newnode->left); freeTree(newnode->right); newnode->left = newnode->right = NULL; free(newnode); newnode = NULL; }//end of freeTree
mar_kostas13 Δημοσ. 18 Δεκεμβρίου 2013 Μέλος Δημοσ. 18 Δεκεμβρίου 2013 se eyxaristw maga m.!!!!!! t xa skeftei kai egw αλλα ελεγα μηπως υπάρχει κάτι αλο
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα