Heap -da, statik bo'lmagan va mahalliy o'zgaruvchilar esa Stack


Download 28.76 Kb.
bet1/3
Sana24.01.2023
Hajmi28.76 Kb.
#1114475
  1   2   3
Bog'liq
Dinamik xotira


C/C++ da dinamik xotira taqsimoti dasturchi tomonidan xotirani qo‘lda taqsimlashni nazarda tutadi. Dinamik ravishda ajratilgan xotira Heap -da, statik bo'lmagan va mahalliy o'zgaruvchilar esa Stack -da ajratilgan xotirani oladi
Ilovalar nima? 

  • Dinamik ravishda ajratilgan xotiradan foydalanishdan biri o'zgaruvchan o'lchamdagi xotirani ajratishdir, bu o'zgaruvchan uzunlikdagi massivlardan tashqari kompilyator tomonidan ajratilgan xotira bilan mumkin emas .

  • Eng muhim foydalanish dasturchilarga taqdim etilgan moslashuvchanlikdir. Biz xotirani har doim kerak bo'lganda va endi kerak bo'lmaganda ajratish va bo'shatishimiz mumkin. Bu moslashuvchanlik yordam beradigan ko'p holatlar mavjud. Bunday holatlarga misollar bog'langan ro'yxat , daraxt va boshqalar.

Oddiy o'zgaruvchilarga ajratilgan xotiradan qanday farq qiladi? 
“int a”, “char str [10]” va hokazo kabi oddiy o‘zgaruvchilar uchun xotira avtomatik ravishda ajratiladi va ajratiladi. “int *p = new int[10]” kabi dinamik ravishda ajratilgan xotira uchun kerak bo'lmaganda xotirani ajratish dasturchining mas'uliyati hisoblanadi. Agar dasturchi xotirani ajratmasa, bu xotira oqishiga olib keladi (dastur tugatilmaguncha xotira ajratilmaydi). 
C++ da xotira qanday taqsimlanadi/ajratiladi?  
C ish vaqtida xotirani dinamik ravishda ajratish uchun malloc() va calloc() funksiyalaridan foydalanadi va dinamik ravishda ajratilgan xotirani bo'shatish uchun free() funksiyasidan foydalanadi. C++ ushbu funktsiyalarni qo'llab-quvvatlaydi va ikkita yangi va o'chirish operatoriga ega,xotirani yaxshiroq va osonroq joylashtirish va bo'shatish vazifasini bajaradigan.
yangi operator
Yangi operator Bepul do'konda xotirani ajratish so'rovini bildiradi. Agar etarli xotira mavjud bo'lsa, yangi operator xotirani ishga tushiradi va yangi ajratilgan va ishga tushirilgan xotira manzilini ko'rsatuvchi o'zgaruvchiga qaytaradi. 

Download 28.76 Kb.

Do'stlaringiz bilan baham:
  1   2   3




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling