Xotiraning dinamik sohasi va ko'rsatkichlar

Xotiraning dinamik sohasi va ko'rsatkichlar

O'quvchilarga / Informatika va AT
Xotiraning dinamik sohasi va ko'rsatkichlar - rasmi

Material tavsifi

Xotiraning dinamik sohasi va ko'rsatkichlar Reja: Xotiraning dinamik sohasi; ko'rsatkichlar haqida boshlang'ich ma'lumotlar. Xotiraning dinamik sohasi Programmaning (tashqi) o'zgaruvchilari kompyuter xotirasining va uzgarmaslar ma'lumotlar segmentida joylashgan bo'ladi. Segment uzunligi esa 64 Kb ni tashkil qiladi. Demak, shunday xollar bo'lishi mumkinki, programmaning barcha o'zgaruvchilarini ma'lumotlar segmentiga joylab bulmaydi, yani ma'lumotlar segmentga sig'maydi. Masalan, quyidagi programmani kompilyatsiya qilishga urinish natijasiz tugaydi, yani ekranda Error 49: Data Segment too large (berilgan ma'lumotlar segmenti juda katta) yul qo'yilgan xato haqida ma'lumot chikadi: var A: array [1400] of byte; B: array [125534] of byte; begin end. Shuning uchun, katta xajmli ma'lumotlar bilan ishlashga tug'ri kelganda bu ma'lumotlarni xotiraning dinamik sohasiga yozish maqsadga muvofikdir. Xotiraning dinamik sohasi (to'plama deb xam atashadi) programma egallagan deyarli barcha xotira hisoblanadi. Fakat bu sohaga ma'lumotlar kodlari, stek va ma'lumotlar segmenti xotiralari kirmaydi. Odatda programma egallagan xotira ko'rinishi kuyidagicha bo'ladi: to'plamaning boshi va oxirini System modulining Heaporg va HeapEnd maxsus o'zgaruvchilari kursatib turadi. Zarur paytdagi to'plama sohasining tugash joyini HeapPtr o'zgaruvchisi aniklab beradi. to'plamaning o'lchovi kiritilgan ma'lumotlar segmentining o'lchovidan bir necha marta katta bo'lib, taxminan 500 kb (agar kompyuterning umumiy xotirasi 640 Kb bulsa) joy egallashi mumkin. ma'lumotlar segmentida joylashgan ma'lumotlar statik ma'lumotlar deb ataladi. Bunga asosiy sabab, ular uchun xotira programmani kompilyatsiya qilish davomida ajratib kuyiladi. Programmani ishlashi davomida esa bu xotira uzgarmay koladi. to'plamadagi xotira esa programmani ishlashi davomida tuldirib boriladi va zarur bo'lgan paytda bu xotira bushatib kuyilishi mumkin. Shuning uchun, to'plamada joylashgan o'zgaruvchilarni dinamik o'zgaruvchilar deb ataladi. to'plamadan xotira ajratishni GetMem va New protseduralari orqali amalga oshiriladi, uni bushatib kuyishni esa FreeMem va Dispose protseduralari bajaradi. 2. ko'rsatkichlar haqida boshlang'ich ma'lumotlar ko'rsatkich shunday o'zgaruvchiki, u ma'lumotning qiymatini emas, balki ularning xotiradagi joylashgan adresini uzida saklaydi. ko'rsatkichlarning ikki xil tipi mavjud: tiplangan va tiplanmagan. Tiplanmagan ko'rsatkichlarning elon qilish uchun pointer xizmatchi so'zidan foydalaniladi, tiplangan ko'rsatkichlarni elon qilish uchun esa ko'rsatilgan tip oldidan ^ belgisi kuyiladi. Misol: var p: pointer; tiplanmagan ko'rsatkich pint: ^ integer ; pint - tiplangan, butun tipli ko'rsatkich x, y: ^ byte; x, y - bayt tipidagi ko'rsatkich pst: ^ string ; pst - kator tipidagi ko'rsatkich Adresi ko'rsatkichda joylashgan zarur ma'lumotga ko'rsatkich qilish uchun ko'rsatkich ismidan keyin ^ belgisini yozish kerak: GetImage (0, 0, 100, 100, p^); grafik ekran sohasining ma'lumotlari r da ko'rsatilgan adresdagi xotira sohasiga yoziladi pint^ :k2; pint adresi bo'yicha 2 butun soni yoziladi x^ :k # 12; y^ :k $2; x^ baytiga # 12 qiymatini uzlashtiri-ladi, y^ baytiga esa $ ...


Ochish
Joylangan
Fayl formati zip → doc
Fayl hajmi 16.11 KB
Ko'rishlar soni 87 marta
Ko'chirishlar soni 7 marta
O'zgartirgan san'a: 29.03.2025 | 01:41 Arxiv ichida: doc
Joylangan
Fayl formati zip → doc
Fayl hajmi 16.11 KB
Ko'rishlar soni 87 marta
Ko'chirishlar soni 7 marta
O'zgartirish kiritilgan: Arxiv ichida: doc
Tepaga