Sobes.tech
Junior — Middle

Πόσες περιοχές έχουν οριστεί για την δυναμική κατανομή μνήμης κατά τη διάρκεια της εκτέλεσης του προγράμματος;

sobes.tech AI

Απάντηση από AI

Κατά την εκτέλεση ενός προγράμματος C#, η δυναμική μνήμη εκχωρείται στη διαχειριζόμενη ουρά (managed heap). Αυτή η ουρά αντιπροσωπεύει μια ενιαία περιοχή μνήμης όπου τοποθετούνται τα αντικείμενα που δημιουργούνται με τον τελεστή new.

Δηλαδή, έχει δεσμευθεί μια μόνο περιοχή για την δυναμική κατανομή μνήμης — η διαχειριζόμενη ουρά, η οποία διαχειρίζεται από το περιβάλλον εκτέλεσης CLR (Common Language Runtime). Ο συλλέκτης απορριμμάτων ελευθερώνει αυτόματα τη μη χρησιμοποιούμενη μνήμη σε αυτήν την περιοχή.

Παράδειγμα δημιουργίας αντικειμένου στην ουρά:

class Program
{
    static void Main()
    {
        var obj = new MyClass(); // μνήμη εκχωρείται στη διαχειριζόμενη ουρά
    }
}

class MyClass
{
    public int Value;
}