manic Δημοσ. 28 Δεκεμβρίου 2011 Δημοσ. 28 Δεκεμβρίου 2011 εχω ενα προγραμμα που κυριος διαχειρίζεται πινακες μεχρι τωρα ειχα πολλα λάθη λογο του οτι διαπερνούσα στοιχεια που δεν υπηρχαν κτλ αλλα τα διόρθωσα, κλασσικά μου εβγαζε ενα μνμ σφαλματος και μου σταματαγε την κονσολα, πλεον μου συμβαινει κατι περιεργο, εκει που τρεχει το προγραμμα η κονσολα κολαει χωρις να μου βγαζει καποιο μνμ σφαλματος σαν να περιμενει input απο εμενα αλλα δν μπορω να γραψω κατι (και ουτε φυσικα εχω βαλει εγω καποια εντολη αναγνωσης) τι συμβαινει? υγ: χρησιμοποιώ code blocks
nplatis Δημοσ. 28 Δεκεμβρίου 2011 Δημοσ. 28 Δεκεμβρίου 2011 Αν και τα στοιχεία που δίνεις είναι πολύ αόριστα για να σου απαντήσει κάποιος, μια πιθανή εξήγηση είναι ότι το πρόγραμμα μένει μέσα σε μία επανάληψη (συνήθως τύπου while) που δεν τερματίζεται ποτέ. Για ψάξε για κάτι τέτοιο...
migf1 Δημοσ. 28 Δεκεμβρίου 2011 Δημοσ. 28 Δεκεμβρίου 2011 Πιθανότατα είναι αυτό που σου είπε ο nplatis. Μιας και χρησιμοποιείς Code::Blocks, είναι πολύ εύκολο μέσω αυτού να μάθεις τον gdb (ο de-facto debugger της GNU). Βάλε στις επιλογές του compiler το flag -g3 (ή σκέτο -g αν δεν σε ενδιαφέρει να γίνονται expanded και τα macros). Κάνε build το πρόγραμμά σου με ενεργοποιημένο αυτό το flag και κατόπιν από τα μενού διάλεξε debug. Με δεξί κλικ στην αρχή των γραμμών του κώδικα (αν το θυμάμαι καλά, ή με διπλό κλικ, κοίταξέ το) μπορείς να βάζεις breakpoint... όπου έχεις βάλει breakpoint σταματάει ο debugger και μπορείς να εξετάσεις όλες τις μεταβλητές σου σε εκείνο το σημείο.
manic Δημοσ. 28 Δεκεμβρίου 2011 Μέλος Δημοσ. 28 Δεκεμβρίου 2011 Οχι δν εχω καποια λουπα στο σημειο που κολαει μονο αρκετες if γνκ μπορει να συμβει κατι τετοιο (δλδ να κολησει η κονσολα χωρις καποιο μνμ σφαλματος) σε προσπαθεια να διαπεραστουν κελια πινακα που δν υπαεχουν πχ??
migf1 Δημοσ. 28 Δεκεμβρίου 2011 Δημοσ. 28 Δεκεμβρίου 2011 Σαφώς και μπορεί! Το εξέτασες με τον debugger που σου είπα στο σημείο που σου κολλάει;
nplatis Δημοσ. 28 Δεκεμβρίου 2011 Δημοσ. 28 Δεκεμβρίου 2011 Γενικά επειδή στη C τα λάθη που αφορούν πρόσβαση σε στοιχεία πινάκων μπορεί να περάσουν απαρατήρητα, ποτέ δεν ξέρεις τι μπορεί να γίνει. Η μόνη λύση είναι αυτή που πρότεινε ο migf1: debugging. Και να δεν αισθάνεσαι άνετα με τα εργαλεία του Code Blocks (που όμως πιστεύω ότι θα σου λύσουν τα χέρια σε ένα τέτοιο πρόβλημα, καθώς μπορείς να παρακολουθήσεις ακριβώς την εξέλιξη του κώδικα και τις τιμές των μεταβλητών), υπάρχουν και τα παλιά-καλά printf / cout.
manic Δημοσ. 28 Δεκεμβρίου 2011 Μέλος Δημοσ. 28 Δεκεμβρίου 2011 το θεμα ειναι οτι δεν μπορω να κανω debugging κατι κανω λαθος, ενω εχω ενεργοποιημενη την επιλογη [-g ] και βαζω breakpoints δεν εχω απο το μενου του debugger την επιλογη για να κανω start (η επιλογη υπαρχει αλλα σε ασπρομαυρο και δν μπορω ν πατησω)
migf1 Δημοσ. 28 Δεκεμβρίου 2011 Δημοσ. 28 Δεκεμβρίου 2011 Πρέπει πρώτα να κάνεις build το πρόγραμμά σου, με ενεργοποιημένο το -g flag
manic Δημοσ. 28 Δεκεμβρίου 2011 Μέλος Δημοσ. 28 Δεκεμβρίου 2011 ναι αυτο κανω αλλα δν μπορω να το επιλεξω παλι
migf1 Δημοσ. 29 Δεκεμβρίου 2011 Δημοσ. 29 Δεκεμβρίου 2011 ναι αυτο κανω αλλα δν μπορω να το επιλεξω παλι Δεν το έχω πρόχειρο εδώ το Code::Blocks, αλλά δοκίμασε με την εξής σειρά: 1. Ενεργοποίησε το -g flag 2. Κάνε build 3. Βάλε breakpoint 4. Πάτα στο Debug button Αν και πάλι δε σου δουλεύει, δοκίμασέ το σε φρέσκο project με hello.c
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα