Sobes.tech
Junior — Middle

Verilənlər strukturu yığını və yaddaş sahəsi heap arasındakı fərqləri izah edin.

sobes.tech Süni İntellekt

AI-dan cavab

Yığım, LIFO (son giren ilk çıkar) prinsipinə əsaslanan məlumatlar strukturudur. Proqramlaşdırmada yığım tez-tez yerli dəyişənləri saxlamaq və funksiyaların çağırışlarını idarə etmək üçün istifadə olunur. O, sabit ölçülü yaddaş sahəsi kimi təşkil olunmuşdur və məlumatlar yalnız bir ucdan — yığımın üstündən — əlavə olunur və çıxarılır.

Heap (yığım) isə, tərtib zamanı ölçüsü və həyat dövrü məlum olmayan obyektlər və məlumatlar üçün istifadə olunan dinamik yaddaş sahəsidir. Heap-də yaddaş dinamik olaraq ayrılır və azad edilir, adətən C-də malloc/free və ya C++-da new/delete operatorları ilə.

Əsas fərqlər:

  • Yaddaş idarəetməsi: yığım avtomatik idarə olunur (məsələn, funksiyadan çıxanda yerli dəyişənlər silinir), heap isə açıq idarəetmə və ya çöp toplayıcı tələb edir.
  • Ölçü: yığım adətən məhduddur, heap isə çox böyük və daha elastikdir.
  • Sürət: yığım əməliyyatları daha sürətlidir, çünki sadəcə göstəricinin hərəkəti ilə əlaqədardır, heap əməliyyatları isə boş blokların axtarışı səbəbindən daha yavaşdır.

iOS-da istifadə nümunəsi:

  • Yerli dəyişənlər və funksiyaların parametrləri yığımda saxlanılır.
  • Objective-C və Swift-də dinamik yaradılan obyektlər heap-də yerləşir.