Από προεπιλογή , η λειτουργία malloc διαθέτει μια συνεχόμενη , ή δίπλα , μπλοκ μνήμης σε μια περιοχή που είναι γνωστή ως ένα σωρό , που μπορεί να προσπελαστεί από ένα πρόγραμμα για την αποθήκευση δεδομένων και μεταβλητές. Η συνάρτηση malloc παίρνει ένα μοναδικό επιχείρημα, μια μακρά ή 32 -bit ακέραιος που αντιπροσωπεύει τον αριθμό των bytes να διαθέσει από το σωρό . Η λειτουργία malloc ζητεί από το σύστημα για ένα μπλοκ μνήμης του μεγέθους που καθορίζεται και επιστρέφει ένα δείκτη - μια διεύθυνση , από την άποψη της γλώσσας προγραμματισμού - . Στο πρώτο στοιχείο του μπλοκ
Η
Επιστροφή Αξία
Η
υπολογιστές έχουν μόνο ένα πεπερασμένο ποσό της μνήμης , έτσι ώστε να είναι δυνατή η λειτουργία malloc να ζητήσει περισσότερη μνήμη από ό, τι είναι φυσικά διαθέσιμη και να προκαλέσει ένα πρόγραμμα για την συντριβή . Αν δεν υπάρχει αρκετή διαθέσιμη μνήμη , malloc επιστρέφει ένα δείκτη null , ή ένα δείκτη με τιμή μηδέν . Για να αποτρέψετε ένα πρόγραμμα από τη συντριβή , οι προγραμματιστές πρέπει να ελέγξει ότι η malloc δεν έχει επιστρέψει null , ώστε να γνωρίζουν ότι η ζητούμενη μνήμη διατέθηκαν επιτυχώς πριν επιχειρήσετε να το χρησιμοποιήσετε .
Η Απελευθέρωση της μνήμης
Η
Ομοίως , ένας υπολογιστής δεν μπορεί να διαθέσει διαρκώς όλο και περισσότερη μνήμη - και κατ 'επανάληψη αντικατάσταση ενός δείκτη που δείχνει δυναμικά εκχωρημένη μνήμη μπορεί να οδηγήσει σε δεδομένα απρόσιτες . Ως εκ τούτου, δυναμικά εκχωρημένη μνήμη πρέπει να απελευθερώνονται πίσω στην πισίνα μνήμη του συστήματος, χρησιμοποιώντας τη δωρεάν λειτουργία , τη στιγμή που δεν είναι πλέον απαραίτητη . Μόλις μια διεργασία τερματίζεται , όλα τα δυναμικά εκχωρημένη μνήμη απελευθερώνεται πίσω στην πισίνα μνήμης .
Εικόνων Σύνταξη
Η
Malloc επιστρέφει ένα γενικό δείκτη , ή ένα δείκτη για να ακυρώσουν , αλλά ο δείκτης μπορεί να είναι δακτυλογραφημένες , ή typecast , να υποδείξουν τον τύπο των δεδομένων στα οποία επισημαίνει . Η σύνταξη " char * str = ( char * ) malloc ( 40 ) ", για παράδειγμα , διαθέτει μνήμη για μια σειρά 40 χαρακτήρες . Εναλλακτικά , οι προγραμματιστές μπορούν να δηλώσουν ένα δείκτη και επικαλούνται malloc όταν επιθυμούν να κάνουν χώρο για τα στοιχεία σε μια σειρά . Ωστόσο, είναι σημαντικό να σημειωθεί ότι η λειτουργία malloc κατανέμει μνήμη μόνο . Αυτό δεν αδειάζει ή άλλως την προετοιμασία της μνήμης που διαθέτει .
Η
εικόνων
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα