Πού το malloc εκχωρεί τη μνήμη;

Πού το malloc εκχωρεί τη μνήμη;
Πού το malloc εκχωρεί τη μνήμη;
Anonim

Κανονικά, το malloc εκχωρεί μνήμη από το the heap και προσαρμόζει το μέγεθος του σωρού όπως απαιτείται, χρησιμοποιώντας το sbrk(2). Όταν εκχωρούνται μπλοκ μνήμης μεγαλύτερα από MMAP_THRESHOLD byte, η εφαρμογή glibc malloc εκχωρεί τη μνήμη ως ιδιωτική ανώνυμη αντιστοίχιση χρησιμοποιώντας mmap(2).

Πού εκχωρείται η μνήμη malloc;

Στο C, η συνάρτηση βιβλιοθήκης malloc χρησιμοποιείται για την εκχώρηση ενός μπλοκ μνήμης στο the heap Το πρόγραμμα έχει πρόσβαση σε αυτό το μπλοκ μνήμης μέσω ενός δείκτη που επιστρέφει το malloc. Όταν η μνήμη δεν χρειάζεται πλέον, ο δείκτης μεταβιβάζεται στην ελεύθερη, ο οποίος εκχωρεί τη μνήμη έτσι ώστε να μπορεί να χρησιμοποιηθεί για άλλους σκοπούς.

Σε ποιο μέρος της μνήμης το malloc και το calloc εκχωρούν μνήμη;

Το όνομα malloc και calloc είναι συναρτήσεις βιβλιοθήκης που εκχωρούν μνήμη δυναμικά. Σημαίνει ότι η μνήμη εκχωρείται κατά τη διάρκεια του χρόνου εκτέλεσης (εκτέλεση του προγράμματος) από το το τμήμα σωρού.

Πού εκχωρείται η μνήμη;

The Heap. Το Heap είναι εκείνο το τμήμα της μνήμης του υπολογιστή, που εκχωρείται σε μια εφαρμογή που εκτελείται, όπου η μνήμη μπορεί να εκχωρηθεί για μεταβλητές, στιγμιότυπα κλάσεων κ.λπ. Από το σωρό ενός προγράμματος το λειτουργικό σύστημα εκχωρεί μνήμη για δυναμική χρήση.

Πού είναι αποθηκευμένη η στατικά εκχωρημένη μνήμη;

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

Συνιστάται: