Sobes.tech
Junior — Middle

Yaddaş idarəsində yığım və yığım arasındakı fərqi izah edə bilərsinizmi?

sobes.tech Süni İntellekt

AI-dan cavab

Yığın və yığın sahəsi, C# və digər dillərdə yaddaş idarəsinin iki fərqli üsuludur.

Yığın yerli dəyişənlərin və funksiyaların çağırışlarının saxlandığı yaddaş sahəsidir. O, LIFO (son daxil olan, ilk çıxar) prinsipinə əsaslanır. Yığın üzərində yaddaş çox sürətlə ayrılır və funksiyalara giriş və çıxış zamanı avtomatik olaraq sərbəst buraxılır. Ancaq, yığın ölçüsü məhduddur və yalnız sabit ölçülü məlumatlar saxlanılır.

Heap isə obyektlərin dinamik ayrılması üçün yaddaş sahəsidir, məsələn, sinif nümunələri. Heap-də yaddaş əl ilə (new operatoru vasitəsilə) ayrılır və garbage collector (GC) tərəfindən idarə olunur. Heap dəyişkən ölçülü obyektləri və daha mürəkkəb strukturları saxlamağa imkan verir, lakin yaddaşın ayrılması və sərbəst buraxılması daha yavaşdır.

Nümunə:

int x = 10; // dəyişən x yığında saxlanılır
MyClass obj = new MyClass(); // obyekt heap-də yaradılır, referans obj yığında saxlanılır

Beləliklə, yığın sürətli və müvəqqəti məlumatlar üçün, heap isə uzunömürlü obyektlər üçün nəzərdə tutulub.