This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
qna:misc:runtime:crash-or-long-return-value [2021/04/19 10:29] xallos created |
qna:misc:runtime:crash-or-long-return-value [2022/05/28 16:47] (current) xallos |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Η εκτέλεση τερματίζετα με " | ====== Η εκτέλεση τερματίζετα με " | ||
+ | |||
+ | ===== Το πρόβλημα ===== | ||
+ | |||
Η εκτέλεση του κώδικα τερματίζεται με έναν παράξενο, | Η εκτέλεση του κώδικα τερματίζεται με έναν παράξενο, | ||
Line 10: | Line 13: | ||
* Πρόσβαση σε στοιχεία του πίνακα **έξω από τα όρια του πίνακα** (είτε με αρνητικό δείκτη, | * Πρόσβαση σε στοιχεία του πίνακα **έξω από τα όρια του πίνακα** (είτε με αρνητικό δείκτη, | ||
+ | * Η τιμή ενός δείκτη (**pointer**) να **είναι '' | ||
+ | * Μία περίπτωση όπου η μνήμη δεν επιτρέπει την εγγραφή, | ||
+ | |||
+ | ==== Μέθοδοι επίλυσης ==== | ||
+ | |||
+ | Επειδή αυτό είναι πρόβλημα όχι με το συντακτικό της γλώσσας, | ||
+ | |||
+ | === Με τη χρήση της printf === | ||
+ | |||
+ | Εισάγετε μερικές εντολές '' | ||
+ | |||
+ | Έτσι έντοπίζετε την περιοχή που " | ||
+ | |||
+ | Δεν πρέπει ποτέ να ξεχνάτε ότι στο τέλος, όταν λυθεί το πρόβλημα, | ||
+ | |||
+ | === Με τη χρήση του Debugger === | ||
+ | |||
+ | Αφού αφαιρέσετε ή απενεργοποιήσετε όλα τα breakpoints, | ||
+ | |||
+ | <WRAP info> | ||
+ | |||
+ | Προσέξτε ότι __η γραμμή αυτή δεν είναι απαραίτητα η λανθασμένη__, | ||
+ | |||
+ | <WRAP important> | ||
+ | |||
+ | Μερικές φορές όμως δεν αρκεί ούτε αυτό. Για αυτές τις ελάχιστες περιπτώσεις μας μένει η '' | ||