Εργαστήριο Τεχνολογίας Λογισμικού
+1 vote
1.2k views

Στο 6ο testcase ο grader μου εμφανίζει "Σφάλμα Κατάτμησης", όμως όταν εκτελώ το πρόγραμμα στο codeblocks μου τυπώνεται κανονικά η έξοδος που ζητάει. Τι πρέπει να κάνω;

in progintro by (160 points)
edited by | 1.2k views
0

Ίσως θα ήταν καλό να συμπεριλάβεις πληροφορίες σχετικά με το τι μεταβλητές χρησιμοποιείς (κάποιο πολύ μεγάλο πίνακα ίσως?). Αν ο κωδικάς σου είναι αρκετά μικρός ίσως να είναι καλό να επισυνάψεις και αυτόν

0

Το σφάλμα κατάτμησης (segmentation fault) σημαίνει ότι προσπελάζεις μνήμη που δεν σου ανήκει. Αν ο κώδικάς σου είναι σωστός τότε δε θα βγάλει πρόβλημα σε κανένα μηχάνημα. Το ότι τρέχει στο δικό σου και σκάει στο grader σημαίνει απλά ότι στο μηχάνημα σου είσαι "τυχερός" και παρόλο που τρέχεις κάτι λάθος δεν προλαβαίνει να σκάσει και παίρνεις το σωστό αποτέλεσμα.

Άρα αυτό που μάλλον πρέπει να κάνεις είναι να κοιτάξεις μήπως κάπου κάνεις πρόσβαση σε κάτι που δεν είναι δικό σου. Πολύ συνήθης τρόπος που το παθαίνεις αυτό είναι να βάλεις σε πίνακα μεγαλύτερο index απ' ότι το μέγεθός του ή αρνητικό index.

0

Oκ θα το ψάξω, ευχαριστώ πολύ για την βοήθεια!

1 Answer

0 votes

Από όσο έχω καταλάβει ο grader όταν βγάζει Σφάλμα Κατάτμησης, εννοεί μία ομάδα σφαλμάτων που περιλαμβάνει και άλλα σφάλματα πέραν του σφάλματος κατάτμησης. Κρίνοντας και από την είσοδο του συγκεκριμένου test case μάλλον κάπου στο πρόγραμμα σου δεν γίνεται σωστά ο ελέγχος αν θα γίνει διαίρεση με το μηδέν, οπότε κάπου διαιρεί με μηδέν μετά. (κανονικά το πρόγραμμα τερματίζει δηλαδή με floating point exception.) Θα πρότεινα να δοκιμάσεις μία-μία τις πράξεις που δίνει το συγκεκριμένο test case στο πρόγραμμα σου. Το πιθανότερο θεωρώ είναι ότι το πρόβλημα εντοπίζεται στην τελευταία πράξη.

by (2.9k points)
0

Καλησπέρα, εμένα ενώ δουλεύει για n πράξεις κανονικά, στο πρώτο μη έγκυρο συνδυασμό που του βάζω δείχνει error αλλά τερματίζει το πρόγραμμα. Έχουμε καμιά ιδέα που μπορεί να οφείλεται αυτό;

0

Ίσως αυτό θα ήταν καλύτερο να μπει σε νέα ερώτηση, όπου θα δίνονται και επιπλέον στοιχεία για τον συγκεκριμένο κώδικα. Βέβαια επειδή η ερώτηση αφορά σε σειρά ασκήσεων, καλό θα ήταν να απόφυγουμε την δημοσίευση αυτούσιου κώδικα. Ίσως να μπορούσατε κάπως να εξηγήσετε περιγραφικά το τμήμα κώδικα που θεωρείτε πως προκαλεί το πρόβλημα.

301 questions

289 answers

288 comments

903 users