|
void *realloc(void *ptr, size_t newssize)
|
bet | 4/6 | Sana | 18.05.2024 | Hajmi | 78,3 Kb. | | #241946 |
Bog'liq 3-Mustaqil ishi 10 void *realloc(void *ptr, size_t newssize) realloc() funktsiyasi ptr tomonidan ko'rsatilgan ajratilgan xotira hajmini newsize parametri tomonidan belgilangan yangi qiymatga o'zgartiradi. Yangiliklar hajmi baytlarda ko'rsatilgan va asl nusxadan kattaroq yoki kichikroq bo'lishi mumkin. Xotira blokiga ko'rsatgich qaytariladi, chunki uning hajmi kattalashganda blokni ko'chirish kerak bo'lishi mumkin. Bunday holda, eski blokning mazmuni yangi blokga ko'chiriladi va hech qanday ma'lumot yo'qolmaydi. Agar to'plamda yangiliklar blokini ajratish uchun bo'sh xotira etarli bo'lmasa, u holda NULL qaytariladi . bepul ( ing. bepul, ozod) void free( void * ptr ); Erkin funksiya ptr bilan ko'rsatilgan xotira blokini uyaga qaytaradi. Bu blok avval malloc, calloc yoki realloc ga qo'ng'iroq yordamida ajratilgan bo'lishi kerak. Xotirani ajratish va bo'shatish uchun C++ operatsiyalari - operatsiya :
ko'rsatkich = yangi turi ; Ko'rsatkich * turidan foydalanib e'lon qilinishi kerak . Amaliyot ma'lum turdagi xotira katakchasini ajratadi va yacheyka manzilining qiymatini ko'rsatgichga beradi. Turdan keyin dumaloq qavslar ichida ishga tushirish qiymatini va kvadrat qavslar ichida ajratiladigan katakchalar sonini belgilashingiz mumkin. Aksariyat ilovalar ikkala qavs va kvadrat qavslarga ham ruxsat bermaydi. Misollar: int *ip = yangi int; /* int tipidagi obyekt yaratish va unga ko‘rsatgich olish */ int *ip2 = new int(2); // boshlang'ich qiymatni 2 ga o'rnatish bilan bir xil inr *intArray = new int [ 10 ]; // int double tipidagi 10 ta elementdan iborat massiv int **matr = yangi juft [ m ] [ n ]; // m satr va n ta ustundan iborat matritsa - o'chirish operatsiyasi :
ko'rsatgichni o'chirish ; o'chirish [] ko'rsatgich ;// massivlar uchun O'chirish bilan ajratilgan xotirani bo'shatish .
|
| |