Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> C /C + + Προγραμματισμός

Πώς να κατανέμει δυναμικά μία Array Χρησιμοποιώντας Class σε C + +

Στη βασική C + + προγραμματισμό , μεταβλητές και πίνακες δηλώνονται από τον προγραμματιστή απευθείας στον κώδικα . Ωστόσο , κατά την οικοδόμηση δομών δεδομένων, όπως δυναμικά αλλαγή μεγέθους πίνακες , ο προγραμματιστής πρέπει να μάθει να κατανέμει δυναμικά μνήμη κατά την εκτέλεση του κώδικα . Οι πίνακες διατίθενται με τον τρόπο αυτό έχουν μερικά πλεονεκτήματα , όπως η μη σταθερό μήκος κατά τη δήλωσή τους . Ο προγραμματιστής μπορεί να διαθέσει συστοιχίες των βαθμωτών τύπων δεδομένων και οι κατηγορίες των χρηστών που δημιουργούνται με τον ίδιο τρόπο . Χρησιμοποιώντας τους δείκτες και τις λέξεις-κλειδιά είναι ενσωματωμένη στο πρότυπη βιβλιοθήκη , C + + κάνει την κατανομή μνήμης και διαγραφή απλή . Τα πράγματα που θα χρειαστείτε
επεξεργαστή κειμένου
C /C + + Compiler (όπως το Microsoft Visual Studio ή GCC )
Η Εμφάνιση Περισσότερες οδηγίες
Η 1

Δημιουργήστε ένα δείκτη της τύπο δεδομένων η συστοιχία θα περιέχει . Για παράδειγμα , για να δημιουργήσετε δυναμικά μια σειρά ακεραίων , ο δείκτης ακέραιος πρέπει να υπάρχουν για την αναφορά του πίνακα:

int * arr_ptr ?

Ο δείκτης " arr_ptr " θα επιτρέψει τώρα ένας προγραμματιστής για την αναφορά βαθιά μνήμη κατά τη διάρκεια της εκτέλεσης . 2

Χρησιμοποιήστε το δείκτη για την εκχώρηση μνήμης . Το "νέο" λέξη-κλειδί , το οποίο είναι ειδικό για τα C + + βιβλιοθήκες ( και όχι διαθέσιμο σε στάνταρ C ) υποστηρίζει μνήμη κατά τη διάρκεια της εκτέλεσης για τη χρήση του καλούντος δείκτη :

arr_ptr = new int [ 6] ?

Εδώ , η "νέα" λέξη-κλειδί αρπάζει ένα μπλοκ έξι ακέραιος μεγέθους τμήματα της μνήμης . Ωστόσο , σε αντίθεση με συστοιχίες δηλωθεί πριν από το χρόνο εκτέλεσης , δυναμική συστοιχίες μπορούν να δηλωθούν με μεταβλητή εισόδου :

int i = 6 ?

Arr_ptr = new int [ i ] ?

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

Διαθέστε μια σειρά δημιουργήθηκαν από το χρήστη τύπους δεδομένων . Σύμφωνα με τη διαδικασία C + + κατανομή μνήμης , ο προγραμματιστής μπορεί να δημιουργήσει πίνακες των τύπων δεδομένων που δηλώνονται σε ξεχωριστές τάξεις :

int i = 5 ?

NewClass * class_ptr ?

Class_ptr = νέα newClass [ i ] ? .

ο δείκτης " class_ptr " θα αναφέρει μια μεταβλητή του « newClass " τύπο δεδομένων , πιθανότατα ορίζεται σε μια περιγραφή της κλάσης σε ένα άλλο αρχείο
Η 4

Διαγραφή του array . Όταν ένας πίνακας δεν είναι πλέον απαραίτητα ( ή έχει αντιγραφεί σε μια άλλη σειρά , πιθανώς κατά τη διάρκεια μιας λειτουργίας αλλαγής μεγέθους ), ο προγραμματιστής θα πρέπει να βεβαιωθείτε για να το διαγράψετε . Κατανεμημένη μνήμη που δεν διαγράφεται , αλλά δεν αναφέρεται , μπορεί να πάρει πολύτιμη μνήμη και , με την πάροδο του χρόνου , να προκαλέσει αυτό που είναι γνωστό ως μια διαρροή μνήμης

int i = 5 ? .

NewClass * class_ptr ?

class_ptr = νέα newClass [ i ] ?

διαγραφή class_ptr [ ] ?

τώρα , η σειρά που αναφέρεται από " class_ptr " θα πρέπει να διαγραφεί , και η μνήμη ελευθερώνεται για άλλες χρήσεις .
Η
εικόνων

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα