arifmetika ko'rsatkichni oshirish
va kamaytirish orqali
o'zgartirishga imkon beradi. Ko'rsatkichning haqiqiyligi
dasturlash tili orqali amalga oshirilmaydi, lekin dasturchi
tomonidan tekshirilishi kerak. Misol uchun, ko'rsatgich o'sishidan
so'ng dasturchi ko'rsatgich hali ham to'g'ri massivga ishora
qilishini ta'minlashi kerak. Referensiyani bekor qilishda dasturchi
ko'rsatilgan ob'ektning amalda bo'lishini kafolatlashi uchun javobgardir .
31
4 Xotira va tur xavfsizligi
Xotira xavfsizligi - bu xotira ob'ektlariga faqat tegishli
imkoniyatlar bilan kirishni kafolatlaydigan dastur xususiyati .
Mavhum darajada ko'rsatgich ma'lum bir xotira ob'ektiga
yoki xotira hududiga kirish imkoniyatidir [9,21]. Ko'rsatkich
har doim tayinlanganda imkoniyatlarni oladi va keyin
ko'rsatilgan xotira ob'ektiga kirishga ruxsat beriladi. Xotira
ob'ektining sig'imlari asosiy ob'ektning hajmi yoki maydonini,
amal qilish muddatini va potentsial turini tavsiflaydi.
Imkoniyatlar xotira ob'ekti yaratilganda unga tayinlanadi.
Xotirani taqsimlovchidan qaytarilgan dastlabki ko'rsatkich
bu imkoniyatlarni oladi va keyin ularni tayinlash orqali
boshqa ko'rsatkichlarga o'tkazishi mumkin. Xotira ob'ektlari
ajratuvchini chaqirish orqali aniq ,
dasturni ishga tushirish
orqali global ma'lumotlar uchun yoki funktsiyani chaqirish
orqali stek ramkasini yaratish uchun bevosita yaratilishi
mumkin. Imkoniyatlar ushbu xotira ob'ekti tirik qolar ekan,
amal qiladi. Ushbu boshlang'ich ko'rsatgichdan yaratilgan
ko'rsatgichlar bir xil imkoniyatga ega bo'ladi va faqat ushbu
ob'ekt chegaralari ichidagi ob'ektga kirishi mumkin va faqat
ushbu ob'ekt ajratilmagan bo'lsa.
Xotirani taqsimlovchiga
aniq qo'ng'iroq qilish yoki qo'ng'iroq qiluvchiga qaytish orqali
stek ramkasini olib tashlash orqali xotira ob'ektini yo'q qiladi va barcha imkoniyatlarni bekor qiladi.
Machine Translated by Google
Xotiraning buzilishi, xotira xavfsizligining yo'qligi ko'plab yuqori
darajadagi hujumlarning asosiy sababi va turli xil hujum vektorlarining
ko'pligining asosidir. Xotira xavfsizligi - bu dasturga,
ish vaqti
muhitiga yoki dasturlash tiliga qo'llanilishi mumkin bo'lgan umumiy
xususiyat. Agar ushbu dasturning barcha mumkin bo'lgan
bajarilishi
xotira xavfsiz bo'lsa , dastur xotira xavfsiz hisoblanadi. Ishlash vaqti
muhiti, agar barcha ishga tushiriladigan dasturlar xotira xavfsiz
bo'lsa, xotira xavfsiz hisoblanadi. Agar barcha ifodalanadigan
dasturlar xotira xavfsiz bo'lsa, dasturlash tili xotira xavfsiz hisoblanadi.
Xotira xavfsizligi taqiqlaydi, masalan, bufer to'lib ketishi, NULL ko'rsatgichga murojaat qilish,
Pointer imkoniyatlari uchta sohani qamrab oladi:
chegaralar,
haqiqiylik va tur. Xotira ob'ektining chegaralari xotira ob'ektining
fazoviy ma'lumotlarini kodlaydi.
Fazoviy xotira xavfsizligi ko'rsatgichni
yo'qotish xotira ob'ekti
ichidagi ma'lumotlar bilan cheklanishini
ta'minlaydi . Xotira ob'ektlari faqat ular ajratilgan holda amal qiladi.
Vaqtinchalik xavfsizlik ko'rsatkichni faqat asosiy ob'ekt ajratilgan
holda qolishi sharti bilan o'chirib qo'yishni ta'minlaydi .
Xotira ob'ektlariga faqat ko'rsatgich to'g'ri turga ega bo'lsagina kirish
mumkin .
Tur xavfsizligi ob'ekt turining to'g'riligini (dasturlash
tilining
tip tizimiga ko'ra) va tur merosiga ko'ra
mos turlardan biriga mos
kelishini ta'minlaydi. C/C++ dasturlash tillari oilasi yaroqsiz
ko'rsatkichlarning mavjudligiga imkon beradi, ya'ni ko'rsatgich
chegaradan tashqarida yoki endi yaroqsiz bo'lgan yaroqsiz xotira
hududiga ishora qilishi mumkin.
4 Xotira va tur xavfsizligi
32
Xotira xavfsizligi buzilishi faqat bunday noto'g'ri ko'rsatgichga murojaat
qilinganda sodir bo'ladi.
Do'stlaringiz bilan baham: