Μάθετε εάν το πρόγραμμά σας έχει μια διαρροή μνήμης . Εκτελέστε το πρόγραμμά σας μέσα από το πρόγραμμα εντοπισμού σφαλμάτων , πληκτρολογώντας :
« _CrtDumpMemoryLeaks ( )«
Η πρώτη γραμμή του κώδικα θα διαβάσει " Εντοπίστηκε Διαρροές μνήμης ! " Αν όχι , τότε το πρόγραμμα δεν έχει διαρροή μνήμης . 2
Εντοπίστε τη θέση της διαρροής μνήμης . Η τρίτη γραμμή
» _CrtDumpMemoryLeaks ( )«
χρησιμοποιείται με τη δήλωση :
" # define _CRTDBG_MAP_ALLOC »
θα σας πω το όνομα του αρχείο όπου η διαρροή μνήμης διατέθηκε . Μπορείτε επίσης να χρησιμοποιήσετε MFC για να παρακολουθείτε εκχωρήσεις μνήμης . Στο MFC η μακροεντολή : .
« Debug_new »
μπορεί να χρησιμοποιηθεί για να παρακολουθείτε τις διαρροές μνήμης
εικόνων 3
Πηγαίνετε στο φάκελο που επισημάνθηκε . Η κακή κωδικοποίηση θα πρέπει να βρίσκεται . Υπάρχουν πολλές αιτίες της διαρροής μνήμης ? Λανθασμένη χρήση των νέων /διαγραφή , μια άστοχη διαγραφής , "έχασε " δείκτες ή ένας δείκτης βγαίνει από το πεδίο εφαρμογής . Ελέγξτε τις γραμμές κώδικα όπου η μνήμη κατανέμεται και να διορθώσει τυχόν προβλήματα . Ελέγξτε αν μνήμη κατανέμεται σε έναν βρόχο απελευθερώνεται σε κάθε επανάληψη . Βεβαιωθείτε ότι οι δείκτες δεν μπορούν να βγουν έξω από το πεδίο εφαρμογής πριν μνήμης απελευθερώνεται . Επίσης, ελέγξτε ότι οι κωδικοί :
« malloc » /«δωρεάν»
«νέα » /« διαγραφή »
«νέο [ ] ' /delete [ ] '
χρησιμοποιούνται σωστά
Η 4
Εκτελέστε το πρόγραμμά σας μέσω του εντοπισμού σφαλμάτων και πάλι πληκτρολογώντας : .
» _CrtDumpMemoryLeaks ( )«
για να δείτε εάν το πρόβλημα εξακολουθεί να παρουσιάζεται .
Η
εικόνων
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα