Malloc және calloc функциялары арқылы бөлінген жад өздігінен бөлінбейді. Демек, динамикалық жадты бөлу орын алған сайын free әдісі пайдаланылады. Бұл жадты босату арқылы оны босқа жұмсауды азайтуға көмектеседі.
Бөлінген жад қалай бос болады?
С тілінде malloc кітапхана функциясы үймедегі жад блогын бөлу үшін пайдаланылады. Бағдарлама жадтың осы блогына malloc қайтаратын көрсеткіш арқылы қол жеткізеді. Жад қажет болмай қалғанда, меңзер бос орнына жіберіледі, ол жадты басқа мақсаттарда пайдалану үшін босатады.
Бөлінген жадты босатпасаңыз не болады?
Көп жағдайда бағдарламадан шығу алдында жад орнын босату мағынасыз. Операциялық жүйе оны бәрібір қайтарады. Тегін түртіп, өлі нысандарды бетке алады; ОЖ жасамайды. Нәтижесі: бөлуді есептейтін "ағып кету детекторларымен" абай болыңыз.
Жадты бөлу қымбат па?
Үлкен жад блоктарын бөлу және босату құнын қарапайым өлшеу әрбір бөлу/бос жұп үшін шамамен 7,5 мкс тұрады деген қорытындыға келеді. Дегенмен үлкен бөлу үшін МБ үшін үш бөлек шығындар бар.
Бөлінген жад кеңістігін қайта бөлуге болады, солай болса, қалай?
Realloc функциясы old_blk арқылы көрсетілген жад блогын келесі ережелер негізінде бөледі, қайта бөледі немесе босатады: Егер old_blk NULL болса, байт өлшемді жадының жаңа блогы болып табыладыбөлінген. Өлшем нөлге тең болса, old_blk көрсеткен жадты босату үшін бос функция шақырылады.