Mavzu: Dinamik hotira yaratish va undan foydalanish Reja: I. Kirish II. Asosiy qism


Download 120 Kb.
bet1/8
Sana19.04.2023
Hajmi120 Kb.
#1362707
  1   2   3   4   5   6   7   8
Bog'liq
Dinamik hotira yaratish va undan foydalanish


Mavzu: Dinamik hotira yaratish va undan foydalanish
Reja:


I. Kirish
II. Asosiy qism

1. Dinamik xotira taqsimoti


2. Dinamik xotira ajratish uchun ajratilgan kalit so'z
3. Ajratilgan xotirani ajratish
III. Xulsoa
IV. Foydalanilgan adabiyotlar

Kirish
Dastur kompyuterning asosiy xotirasida axborotni ikkita asosiy usulda saqlashi mumkin. Birinchisi global va mahalliy o'zgaruvchilardan, jumladan massivlar, tuzilmalar va sinflardan foydalanadi. Global va statik mahalliy o'zgaruvchilar bo'lsa, ma'lumotni saqlash joyi dasturni bajarish muddati uchun belgilanadi. Mahalliy o'zgaruvchilar bo'lsa, xotira stekga ajratiladi. Garchi Borland C++ bu o'zgaruvchilar bilan juda samarali ishlasa ham, ulardan foydalanish dasturchidan dasturni bajarish jarayonida kerak bo'ladigan xotira hajmini oldindan bilishni talab qiladi.
Axborotni saqlashning ikkinchi usuli Borland C++ dinamik xotira ajratish tizimidan foydalanishdir. Ushbu usulda ma'lumotni saqlash uchun xotira bo'sh xotira maydonidan kerak bo'lganda ajratiladi va orqaga qaytariladi, ya'ni. kerak bo'lmaganda chiqariladi. Bo'sh xotira maydoni dastur joylashgan xotira maydoni va stek o'rtasida joylashgan. Bu maydon to'p deb ataladi va dinamik xotirani ajratish so'rovlari uchun ishlatiladi.
Dinamik xotiradan foydalanishning afzalligi shundaki, dasturni bajarish jarayonida bir xil xotira turli xil axborotlarni saqlash uchun ishlatilishi mumkin. Xotira ma'lum bir maqsad uchun ajratilganligi va undan foydalanish tugagandan so'ng bo'shatilganligi sababli, dasturning boshqa qismida bir xil xotirani boshqa bir vaqtning o'zida boshqa maqsadlarda ishlatish mumkin. Dinamik xotirani taqsimlashning yana bir afzalligi - u bilan bog'langan ro'yxatlar, ikkilik daraxtlar va boshqa dinamik ma'lumotlar tuzilmalarini yaratish qobiliyati.
C ning dinamik xotira taqsimotining yadrosi standart kutubxonaning bir qismi bo'lgan malloc() va free() funksiyalaridir. Har safar malloc() funktsiyasi tomonidan xotira ajratish so'rovi amalga oshirilganda, mavjud bo'sh xotiraning bir qismi ajratiladi. Har safar bu xotira free() funksiyasi yordamida bo'shatilganda, bu xotira tizimga qaytariladi.
C++ tili ikkita dinamik xotira ajratish operatorlarini belgilaydi, yangi va o'chirish.
ANSI C standarti faqat to'rtta dinamik xotira ajratish funktsiyasini belgilaydi: calloc(), malloc(), free() va realloc(). Biroq, Borland C++ bir qancha boshqa dinamik xotira ajratish funksiyalarini o'z ichiga oladi. Zamonaviy 32-bitli xotira modeli uchun kodni kompilyatsiya qilishda xotira tekis bo'ladi va odatda faqat to'rtta standart xotira ajratish funktsiyasidan foydalaniladi.


Download 120 Kb.

Do'stlaringiz bilan baham:
  1   2   3   4   5   6   7   8




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