Dinamik massivni e'lon qilish va ishga tushirish Massiv elementlariga kirish


Kutubxona funksiyalaridan foydalangan holda dinamik massivlarni shakllantirish



Download 476,35 Kb.
bet7/12
Sana21.07.2022
Hajmi476,35 Kb.
#835046
1   2   3   4   5   6   7   8   9   ...   12
Bog'liq
Kurs ishi 2 260622081439


.7 Kutubxona funksiyalaridan foydalangan holda dinamik massivlarni shakllantirish




Dinamik massiv - o'zgaruvchan uzunlikdagi massiv, dasturni bajarish jarayonida xotira ajratiladi.
Odatda, ma'lum bir o'zgaruvchi uchun zarur bo'lgan xotira miqdori kompilyatsiya jarayonidan oldin ushbu o'zgaruvchini e'lon qilish orqali o'rnatiladi. Agar hajmi oldindan noma'lum bo'lgan o'zgaruvchini yaratish zarurati tug'ilsa, u holda dinamik xotira ishlatiladi. C++ dasturlarida xotirani zahiralash va ajratish istalgan vaqtda sodir bo'lishi mumkin. Dinamik massiv elementlariga kirish statik massiv bilan bir xil. Dinamik massivni yaratish vaqtida ishga tushirib bo‘lmaydi va uni bekor qilib bo‘lmaydi.
O'zgaruvchan o'lchamdagi massivlarni shakllantirishni ko'rsatkichlar va dinamik xotira ajratish yordamida ikki usulda tashkil qilish mumkin:
alloc.h va stdlib.h sarlavhali fayllarda tasvirlangan kutubxona funksiyalaridan foydalanish (standart C);
yangi va o'chirish operatsiyalaridan foydalanish (C++).
Dinamik xotirani ajratish va ajratish uchun 1-jadvalda keltirilgan funksiyalardan foydalaniladi. 1.1.


1.1-jadval – Dinamik massivlarni yaratish uchun kutubxona funksiyalari

Funktsiya

Prototip va qisqacha tavsif

malloc

void * malloc(unsigned s) Ko'rsatkichni s baytli dinamik xotira maydonining boshiga qaytaradi, muvaffaqiyatsizlikka uchraganida NULLni qaytaradi

calloc

void * calloc(insigned n, unsigned m) Har biri m baytdan iborat n ta elementni ushlab turish uchun dinamik xotira maydonining boshiga ko‘rsatgichni qaytaradi , muvaffaqiyatsizlikka uchraganida NULLni qaytaradi.

realloc

void * realloc(void * p, unsigned s) Oldindan ajratilgan dinamik xotira blokining hajmini s bayt hajmiga o'zgartiradi, p - o'zgartirilishi kerak bo'lgan blok boshining manzili, muvaffaqiyatsizlikka uchraganida NULLni qaytaradi

ozod

void *free(void p) Oldindan ajratilgan dinamik xotira maydonini bo'shatadi, p - birinchi baytning manzili



Misol:

Bir o'lchovli dinamik massivni shakllantirish funktsiyasi




int * make_mas (int n)
{
int *mas;=(int*)malloc(n*sizeof(int));(inti=0;i
}

Xotirani ajratish uchun malloc funktsiyasidan foydalaniladi, uning parametri ajratilgan xotira maydonining o'lchami n*sizeof(int) ga teng. malloc funksiyasi yozilmagan void* ko'rsatgichni qaytargani uchun natijada yozilmagan ko'rsatgichni int* ko'rsatkichiga aylantirish kerak.Ajratilgan xotirani free(mas) funksiyasi yordamida bo'shatish mumkin.



Download 476,35 Kb.

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




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