Muhammad Al-Xorazmiy nomidagi Toshkent Axborot texnologiyalari Universiteti Dasturiy injenering fakulteti swd 008 guruh talabasi Qo’chqorov Jasurning Dasturlash fanidan “Ko’rsatkich nima ?
Download 166.52 Kb.
|
Jasur Qo\'chqorov dasturlash mustaqil i9sh
- Bu sahifa navigatsiya:
- Delete operatori
New operatori.Xotiraning ob’ektlar oʻrtasidan dinamik taqsimlanuvchi sohasidan joy ajratish uchun new operatori ishlatiladi.new operatoridan keyin xotiraga joylashtiriladigan ob’ekttipini koʻrsatish lozim. Bu ob’ektni saqlash uchun talab etiladigan xotira sohasi oʻlchovini aniqlash uchun kerak boʻladi. Masalan, new unsigned short intdeb yozish orqali biz dinamik taqsimlanuvchi xotiradan ikki bayt joy ajratamiz. Xuddi shuningdek,new long satri orqali toʻrt bayt joy ob’ektlar oʻtrasida dinamik taqsimlanuvchi sohadan ajratiladi.new operatori natija sifatida belgilangan xotira yacheykasining adresini qaytaradi. Bu addres koʻrsatkichga oʻzlashtirilishi lozim. Masalan, unsigned shorttipidagi oʻzgaruvchi uchun dinamik sohadan joy ajratish uchun quyidagi dastur kodi yoziladi:
Yoki xuddi shu amalni bitta satrda ham yozish mumkin. unsigned short int * pPoiner = new unsigned short int; Ikkala holatda ham pPointer koʻrsatkichi unsigned short inttipidagi qiymatni saqlovchi dinamik soha xotirasining yacheykasini koʻrsatib turadi. EndipPointer koʻrsatkichini shu tipdagi ixtiyoriy oʻzgaruvchiga koʻrsatkich sifatida qoʻllash mumkin. Ajratilgan xotira sohasiga biror bir qiymat joylashtirish uchun quyidagicha yozuv yoziladi: * pPointer = 72 ; Bu satr quyidagi maʻnoni anglatadi: «pPointerkoʻrsatkichida adresi saqlanayotgan xotiraga 72 sonini yozing». Dinamik xotira sohasi albatta chegaralangan boʻladi. U toʻlib qolganda new operatori orqali xotiradan joy ajratishga urinsak xatolik yuz beradi. Delete operatori. Agarda oʻzgaruvchi uchun ajratilgan xotira kerak boʻlmasa uni boʻshatish zarur. Bu oʻzidan keyin koʻrsatkich nomi yoziladigan delete operatori yordamida amalga oshiriladi. deleteoperatori koʻrsatkich orqali aniqlangan xotira sohasini boʻshatadi. Shuni esda saqlash lozimki, dinamik xotira sohasidagi adresni oʻzida saqlovchi koʻrsatkich lokal oʻzgaruvchi boʻlishi mumkin. Shuning uchun bu koʻrsatkich eʻlon qilingan funksiyadan chiqishimiz bilan koʻrsatkich ham xotiradan oʻchiriladi. Lekin new operatori orqali bu koʻrsatkichga dinamik xotiradan ajratilgan joy boʻshatilmaydi. Natijada xotiraning bu qismi kirishga imkonsiz boʻlib qoladi. Dasturchilar bu holatni xotiraning sirqib ketishi, yoki yoʻqolishi deb tavsiflaydilar. Bu tavsif haqiqatga butunlay mos keladi, chunki dastur ishini yakunlaguncha xotirani bu qismidan foydalanib boʻlmaydi. Xotirani ajratilgan qismini boʻshatish uchun delete kalitli soʻzidan foydalaniladi. Masalan: delete pPointer; Bunda koʻrsatkich oʻchirilmaydi, balki unda saqlanayotgan adresdagi xotira sohasi boʻshatiladi. Belgilangan xotirani boʻshatilishi koʻrsatkichga taʻsir qilmaydi, unga boshqa adresni oʻzlashtirish ham mumkin. Download 166.52 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling