Ajratilgan xotirani ajratish Xotirani bo'shatish free() funktsiyasi bilan amalga oshiriladi. Mana bir misol:
Bepul (ptrVar);
Xotirani bo'shatgandan so'ng, ko'rsatgichni nolga qaytarish yaxshi amaliyotdir, ya'ni *ptrVar = 0 ni o'rnating. Agar siz ko'rsatgichga 0 ni belgilasangiz, ko'rsatkich null bo'ladi, boshqacha aytganda, u endi hech qanday joyga ishora qilmaydi. Har doim xotirani bo'shatgandan so'ng, ko'rsatkichga 0 qo'ying, aks holda xotira bo'shatilgandan keyin ham ko'rsatgich unga ishora qiladi, ya'ni siz tasodifan ushbu xotiradan foydalanishi mumkin bo'lgan boshqa dasturlarga zarar etkazishingiz mumkin, lekin siz bu haqda hech narsa bilmaysiz. bilib olasiz va dastur to'g'ri ishlaydi deb o'ylaysiz.
P.S.: Video tahrirlashni yaxshi ko'radigan har bir kishi ushbu Windows 7 video muharririga qiziqishi mumkin. Video muharriri Movavi deb ataladi, ehtimol kimdir u bilan tanish yoki hatto u bilan ishlagan. Rus tilidagi ushbu dastur yordamida siz kameradan osongina video qo'shishingiz, sifatini va qoplamasini yaxshilashingiz mumkin chiroyli videolar effektlar.
Statik xotira dastur boshlanishidan oldin ham, kompilyatsiya va yig'ish bosqichida ajratiladi. Statik o'zgaruvchilar dastur boshlanishidan oldin ma'lum bo'lgan va uning ishlashi davomida o'zgarmas bo'lgan qat'iy manzilga ega. Statik o'zgaruvchilar kirishdan oldin yaratiladi va ishga tushiriladi asosiy funksiyasi dasturning bajarilishi qaysi vaqtda boshlanadi.
Statik o'zgaruvchilarning ikki turi mavjud:
global o'zgaruvchilar belgilangan o'zgaruvchilardir tashqi funktsiyalar, tavsifida statik so'zi yo'q. Odatda tavsiflar extern so'zini o'z ichiga olgan global o'zgaruvchilar sarlavha fayllariga (h-fayllar) ko'chiriladi. Extern so'zi o'zgaruvchi e'lon qilingan, lekin dasturning shu nuqtasida yaratilmagan degan ma'noni anglatadi. Ta'riflar global o'zgaruvchilar, ya'ni. extern so'zi bo'lmagan tavsiflar amalga oshirish fayllariga (c-fayllar yoki cpp-fayllar) joylashtiriladi. Misol: global o'zgaruvchi maxind ikki marta e'lon qilinadi:
qator bilan h-faylda
extern int maxind;
bu deklaratsiya bunday o'zgaruvchining mavjudligi haqida xabar beradi, lekin bu o'zgaruvchini yaratmaydi!
qator bilan cpp faylida
int maksimal = 1000;
bu tavsif yaratadi o'zgaruvchan maxind va unga 1000 boshlang'ich qiymatini belgilaydi. E'tibor bering, til standarti global o'zgaruvchilarga boshlang'ich qiymatlarni majburiy belgilashni talab qilmaydi, ammo shunga qaramay, buni qilish har doim yaxshidir, aks holda o'zgaruvchi oldindan aytib bo'lmaydigan qiymatni o'z ichiga oladi (dasturchilar aytganidek, axlat). Barcha global o'zgaruvchilar aniqlanganda ularni ishga tushirish yaxshi uslubdir.
Global o'zgaruvchilar shunday nomlanadi, chunki ular dasturning istalgan joyida uning barcha fayllarida mavjud. Shuning uchun global o'zgaruvchilar nomlari ikki xil o'zgaruvchining tasodifiy nomlarini oldini olish uchun etarlicha uzun bo'lishi kerak. Masalan, global o'zgaruvchi uchun x yoki n nomlari mos kelmaydi;