Βίντεο: Programacion con Go 03 - Bucles, Arrays y Slices 2025
Οι στατικές συστοιχίες κατανέμονται στη στοίβα, η οποία μπορούν να περιορίσουν την χρηστικότητα τους. Δυναμικές συστοιχίες κατανέμονται στον σωρό, πράγμα που σημαίνει ότι περιορίζονται μόνο από το μέγεθος της μνήμης. Είναι βέβαιο ότι θα βρείτε κάποιες άλλες διαφορές μεταξύ δυναμικών και στατικών συστοιχιών, αλλά η κατώτατη γραμμή εδώ είναι ότι παρόλο που οι δυναμικές συστοιχίες απαιτούν λίγο περισσότερη δουλειά γιατί πρέπει να διαχειριστείτε τη μνήμη μόνοι σας, προσφέρουν επιπλέον ευελιξία στη συνεργασία με δεδομένα.
Περισσότερο από πιθανό θα θέλετε να χειριστείτε πολύπλοκα δεδομένα όταν χρησιμοποιείτε δυναμικές συστοιχίες. Το παράδειγμα σε αυτό το άρθρο σε απευθείας σύνδεση στοχεύει να παρακαλώ κοιτάζοντας πώς μπορείτε να χρησιμοποιήσετε έναν δυναμικό πίνακα με μια δομή. Ακολουθεί ένα παράδειγμα του κώδικα που μπορείτε να χρησιμοποιήσετε:
#include #include using namespace std; struct Employee {συμβολοσειρά όνομα; int Age,}. int main () {Υπάλληλος * DynArray; DynArray = νέος (nothrow) υπάλληλος [3]; DynArray [0]. Όνομα = "Harvey"; DynArray [0]. Ηλικία = 33; DynArray [1]. Όνομα = "Sally"; DynArray [1]. Ηλικία = 26; DynArray [2]. Όνομα = "Jeff"; DynArray [2]. Ηλικία = 52; cout << "εμφανίζοντας το περιεχόμενο του πίνακα" << endl; για το (int i = 0; i <3; i ++) {cout << "όνομα:" << dynArray [i]. Όνομα << "tAge:" << dynArray [i]. Ηλικία << endl;} διαγραφή [] DynArray; επιστροφή 0 ·}
Σε αυτό το παράδειγμα, ο κώδικας αρχίζει με τη δημιουργία μιας δομής υπαλλήλων που περιέχει το όνομα και την ηλικία του υπαλλήλου. Θα μπορούσατε να χρησιμοποιήσετε οποιοδήποτε είδος δοχείου δεδομένων που επιθυμείτε - αυτό ακριβώς συμβαίνει να είναι δομή.
Για να δημιουργήσετε έναν δυναμικό πίνακα, ορίζετε έναν δείκτη στη μεταβλητή πίνακα. Αυτή η πράξη τοποθετεί τη μεταβλητή στον σωρό, αντί για τη στοίβα. Στη συνέχεια, δημιουργείτε τον πίνακα, ο οποίος περιέχει τρεις εγγραφές υπαλλήλων σε αυτήν την περίπτωση. Ο κώδικας συμπληρώνει τα δεδομένα και στη συνέχεια χρησιμοποιεί ένα βρόχο για την εμφάνιση των αποτελεσμάτων στην οθόνη. Εδώ είναι αυτό που πρέπει να δείτε όταν τρέχετε το παράδειγμα.
Προβολή του ονόματος περιεχομένου του πίνακα: Harvey Ηλικία: 33 Όνομα: Sally Ηλικία: 26 Όνομα: Jeff Ηλικία: 52
Παρατηρήστε ότι έχετε πρόσβαση στα μεμονωμένα μέλη του Employee με πρόσβαση στο απαιτούμενο ευρετήριο array το όνομα μέλους. Είναι σημαντικό να θυμάστε ότι ο δυναμικός πίνακας ενεργεί όπως οποιοσδήποτε άλλος πίνακας, δεδομένου ότι έχετε πρόσβαση σε ένα ευρετήριο για να αποκτήσετε μια συγκεκριμένη καταχώρηση.
Είναι απαραίτητο να χρησιμοποιήσετε τη διαγραφή [] για να απελευθερώσετε τη μνήμη που χρησιμοποιείται από το DynArray. Διαφορετικά, η αίτησή σας θα έχει διαρροή μνήμης που θα επηρεάσει τελικά την απόδοση του συστήματος ή τουλάχιστον θα την αναγκάσει να κάνει αστεία πράγματα. Επειδή τα συστήματά μας είναι ήδη αστεία, ενεργώντας αρκετά, είναι πιθανώς μια καλή ιδέα να διασφαλίσετε ότι η αίτησή σας δεν «συμβάλλει στο πρόβλημα.
