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

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

Λειτουργία malloc

C - μια γλώσσα προγραμματισμού που σχεδιάστηκε από τον Dennis Ritchie στα AT & T Bell Laboratories στις αρχές της δεκαετίας του 1970 - η λειτουργία malloc είναι ένα μέσο για την κατανομή της μνήμης δυναμικά , ή ανάλογα με τη ζήτηση , και όχι σε απόλυτους όρους . Μερικές φορές οι προγραμματιστές δεν ξέρουν πώς θα χρειαστεί πολύ μνήμη για τα δεδομένα κατά τη στιγμή που γράφουμε ένα πρόγραμμα , έτσι ώστε malloc τους επιτρέπει να εκχωρήσει μνήμη δυναμικά μετά το πρόγραμμα έχει αρχίσει να λειτουργεί . Κατανομή μνήμης
Η

Από προεπιλογή , η λειτουργία malloc διαθέτει μια συνεχόμενη , ή δίπλα , μπλοκ μνήμης σε μια περιοχή που είναι γνωστή ως ένα σωρό , που μπορεί να προσπελαστεί από ένα πρόγραμμα για την αποθήκευση δεδομένων και μεταβλητές. Η συνάρτηση malloc παίρνει ένα μοναδικό επιχείρημα, μια μακρά ή 32 -bit ακέραιος που αντιπροσωπεύει τον αριθμό των bytes να διαθέσει από το σωρό . Η λειτουργία malloc ζητεί από το σύστημα για ένα μπλοκ μνήμης του μεγέθους που καθορίζεται και επιστρέφει ένα δείκτη - μια διεύθυνση , από την άποψη της γλώσσας προγραμματισμού - . Στο πρώτο στοιχείο του μπλοκ
Η
Επιστροφή Αξία
Η

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

Η Απελευθέρωση της μνήμης
Η

Ομοίως , ένας υπολογιστής δεν μπορεί να διαθέσει διαρκώς όλο και περισσότερη μνήμη - και κατ 'επανάληψη αντικατάσταση ενός δείκτη που δείχνει δυναμικά εκχωρημένη μνήμη μπορεί να οδηγήσει σε δεδομένα απρόσιτες . Ως εκ τούτου, δυναμικά εκχωρημένη μνήμη πρέπει να απελευθερώνονται πίσω στην πισίνα μνήμη του συστήματος, χρησιμοποιώντας τη δωρεάν λειτουργία , τη στιγμή που δεν είναι πλέον απαραίτητη . Μόλις μια διεργασία τερματίζεται , όλα τα δυναμικά εκχωρημένη μνήμη απελευθερώνεται πίσω στην πισίνα μνήμης .
Εικόνων Σύνταξη
Η

Malloc επιστρέφει ένα γενικό δείκτη , ή ένα δείκτη για να ακυρώσουν , αλλά ο δείκτης μπορεί να είναι δακτυλογραφημένες , ή typecast , να υποδείξουν τον τύπο των δεδομένων στα οποία επισημαίνει . Η σύνταξη " char * str = ( char * ) malloc ( 40 ) ", για παράδειγμα , διαθέτει μνήμη για μια σειρά 40 χαρακτήρες . Εναλλακτικά , οι προγραμματιστές μπορούν να δηλώσουν ένα δείκτη και επικαλούνται malloc όταν επιθυμούν να κάνουν χώρο για τα στοιχεία σε μια σειρά . Ωστόσο, είναι σημαντικό να σημειωθεί ότι η λειτουργία malloc κατανέμει μνήμη μόνο . Αυτό δεν αδειάζει ή άλλως την προετοιμασία της μνήμης που διαθέτει .
Η
εικόνων

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

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