bnvdarklord Δημοσ. 30 Οκτωβρίου 2013 Δημοσ. 30 Οκτωβρίου 2013 Καλησπέρα, Φτιάχνω μια υλοποίηση του Djikstra, και στο κάθε Label θέλω να κρατάω το προηγούμενο ωστε να μπορω να φτιαξω το μονοπάτι όταν τελειώσει ο αλγόριθμος. Προσθετω λοιπόν στην κλάση μου ενα δεικτη προς Label. Όταν τρέχω τον αλγόριθμο και παράγω κάποιο Label, αρχικά δοκίμασα το εξής: LabelW.setPrevLabel(&currLabel); (το τμήμα αυτό βρίσκεται σε ενα for που παράγει labels για τους γειτονες του currLabel.) Το currLabel όμως αλλάζει στην πορεία, και αφού ειναι δείκτης μεσα στο Label, αλλάζει και εκεί. Οπότε δοκίμασα το εξής, περιμένοντας να δουλέψει: Label<float> previousLabel(1); // ή και Label<float> previousLabel = currLabel; αν εχει διαφορα previousLabel = currLabel; LabelW.setPrevLabel(&previousLabel); Το currLabel θα αντιγραφόταν στο previous, οπότε δεν θα άλλαζε στην πορεία. Το πρόβλημα παρόλα αυτά παραμένει. Τι κάνω λάθος; Ευχαριστώ.
bnvdarklord Δημοσ. 2 Νοεμβρίου 2013 Μέλος Δημοσ. 2 Νοεμβρίου 2013 Καμια ιδέα; Λογικα συμβαινει επειδη λογικα λογω του for ξαναγράφει πάνω στην ιδια θεση μνήμης... αλλά τοτε πως μπορει να γινει αυτο;
defacer Δημοσ. 2 Νοεμβρίου 2013 Δημοσ. 2 Νοεμβρίου 2013 Λείπουν τόσες πολλές απαραίτητες πληροφορίες από το post σου που δεν ξέρω αν θα μπει κανένας στον κόπο να ζητήσει αρκετές διευκρινίσεις ή να ψάξει τις προηγούμενες δημοσιεύσεις για να συμπληρώσει τα κενά. Εντάξει, να βοηθήσουμε, αλλά εδώ για να αποκτήσουμε αυτό το "προνόμιο" πρέπει πρώτα να κάνουμε κανονική δουλειά -- την οποία θα έπρεπε να έχεις κάνει εσύ και στην ιδανική περίπτωση να μας τα έχεις όλα στο πιάτο σε βαθμό που να σε πούμε και υπερβολικό. Δεν ξέρω αν αυτός είναι ο λόγος που δεν έχεις απαντήσεις γενικά, αλλά για μένα προσωπικά έτσι πάει. 1
bnvdarklord Δημοσ. 2 Νοεμβρίου 2013 Μέλος Δημοσ. 2 Νοεμβρίου 2013 Ναι εχεις δικιο, τελικα το διορθωσα αυτο το κομματι, απλα αλλαζοντας λιγο την λογικη για να γλιτωσω τους δεικτες. Ελεγα μηπως εκανα κανενα συνηθισμένο λαθος.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα