int *pia = new int[4];
Bu misolda int turidagi to‘rt elementdan iborat massiv uchun xotira ajratiladi. Afsuski, new buyrug‘ining bu shaklida massiv elementlarini initsializatsiya qilish imkoniyati yo‘q.new buyrug‘ining ikkala shaklida ham bir xil ko‘rsatkich aniqlanishi ba’zi chalkashliklarga olib kelishi mumkin. Qaralayotgan misolda bu butun turga ko‘rsatkichdir. pint ham, pia ham bir xil e’lon qilingan, ammo pint int turidagi yagona ob’yektni ko‘rsatadi, pia esa int turidagi to‘rtta ob’yektdan iborat massivni ko‘rsatadi.Dinamik ob’yekt kerak bo‘lmay qolganda unga ajratilgan sohani oshkor ravishda bo‘shatish mumkin. Bu delete buyrug‘i yordamida bajariladi:
delete pint;
Massivni bo‘shatish ham new buyrug‘i kabi ikki shaklga ega, birlik ob’yekt uchun va massiv uchun.
delete[] pia;
Agar ajratilgan xotirani bo‘shatishni unutsak, u bo‘shga sarflanadi, ishlatilmaydi. Agar unga bo‘lgan ko‘rsatkich o‘z qiymatini o‘zgartirgan bo‘lsa uni tizimga qaytarish ham mumkin emas. Bunday
xodisa xotiraning oqib ketishi degan maxsus nom olgan. Oxir oqibatda dastur xotira etmasligi sababli halokatli (avariyali) to‘xtaydi (agar u uzoq vaqt ishlasa).
Do'stlaringiz bilan baham: |