Logo el.boatexistence.com

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

Πίνακας περιεχομένων:

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

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

Βίντεο: Πού το malloc εκχωρεί τη μνήμη;
Βίντεο: CS50 2013 - Week 5, continued 2024, Ενδέχεται
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 (αν δεν έχει αρχικοποιηθεί) και αποθηκεύονται σε αντίστοιχες ενότητες αρχείων αντικειμένων πριν από τη φόρτωση.

Συνιστάται: