Nazariy qism(1-90) Massivlarni saralash algoritmlari


C++da new va delete operatorlari va ularni ishlatishga oid misollar



Download 265,24 Kb.
bet36/66
Sana31.12.2021
Hajmi265,24 Kb.
#257465
1   ...   32   33   34   35   36   37   38   39   ...   66
Bog'liq
Yakuniy Javoblari @TBCLbot 2021

42. C++da new va delete operatorlari va ularni ishlatishga oid misollar.

Xotirani ajratish va bo'shatish uchun new va delete operatorlaridan foydalanish
new operatori yangi xotira bloklarini ajratish uchun ishlatiladi. new operatorining eng ko'p ishlatiladigan versiyasi, u muvaffaqiyat haqida so'ralgan xotira maydoniga ko'rsatkichni qaytaradi va aks holda istisno qiladi. new operatoridan foydalanishda siz xotira ajratiladigan ma'lumotlar turini ko'rsatishingiz kerak:
Tip* Ko’rsatkich = new Tip; //Xotiraga bitta element uchun so’rov
Shuningdek, siz xotirani ajratmoqchi bo'lgan elementlar sonini belgilashingiz mumkin (agar siz elementlar qatori uchun xotira ajratishingiz kerak bo'lsa):

Tip* Ko’rsatkich = new Tip [Miqdor] // Belgilangan elementlar soni uchun xotirani so'rash
Shunday qilib, xotirada butun sonlarni joylashtirish kerak bo'lsa, quyidagi koddan foydalanishimiz mumkin:
int* pointToAnInt = new int; //Butun songa ko’rsatkich

int* pointToNums = new int[10]; //10 ta butun sondan iborat massivga ko’rsatkich


new operatori bilan ajratilgan har bir xotira maydoni tegishli delete operatori tomonidan bo'shatilishi kerak:
Tip* Ko’rsatkich = new Tip;
Delete Ko’rsatkich;

Bu bir nechta element uchun xotira ajratilganda ham shu usul yordamida o’chirish mumkin:


Tip* Ko’rsatkich = new Tip[Miqdor];
Delete [] Ko’rsatkich;
Agar siz ajratilgan xotirani tugatgandan so'ng bo'shatmasangiz, u ajratilgan bo'lib qoladi va keyinchalik sizning yoki boshqa ilovalaringizga ajratish uchun mavjud bo'lmaydi. Xotiraning bunday sarflanishi hatto dastur yoki umuman kompyuter ishini sekinlashtirishi mumkin va bunga har qanday holatda yo'l qo'ymaslik kerak.

Quyidagi dasturda xotirani dinamik ajratish va taqsimlash ko'rsatilgan.


#include

using namespace std;

//@TBCLbot

int main()

{

//int tipi uchun xotira ajratish



int* pointsToAnAge = new int;

//Ajratilgan xotiradan foydalanish

cout<<"Yoshni kiriting: ";

cin>> *pointsToAnAge;

//* Ajratish operatorini qo'llash

cout<<"Yosh "<< *pointsToAnAge<<" " <


delete pointsToAnAge; //Xotirani bo'shatish

return 0;

}

E'tibor bering, new [] operatoridan foydalangan holda bir qator elementlar uchun xotirani ajratganda, quyidagi dasturda ko'rsatilgandek, uni delete [] operatori yordamida bo'shatish kerak.



#include

using namespace std;

//@TBCLbot

int main()

{

cout<<"Massiv miqdorini kiriting?"<

int numEntries = 0;

cin>>numEntries;

int* myNumbers = new int[numEntries];

cout<<"Ajratilgan xotira manzili: "<

//Xotirani bo'shatish

delete[] myNumbers;

return 0;

}


Download 265,24 Kb.

Do'stlaringiz bilan baham:
1   ...   32   33   34   35   36   37   38   39   ...   66




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish