C ծրագրավորման լեզվում realloc ֆունկցիան օգտագործվում է հիշողության բլոկի չափը փոխելու համար, որը նախկինում հատկացվել էր: Realloc ֆունկցիան հատկացնում է հիշողության բլոկ (որը կարող է այն ավելի մեծ կամ փոքր դարձնել, քան բնօրինակը) և անհրաժեշտության դեպքում պատճենում է հին բլոկի պարունակությունը հիշողության նոր բլոկում:
Ինչպե՞ս եք վերաբաշխում հիշողությունը:
Դինամիկ տեղաբաշխված հիշողության չափը կարելի է փոխել՝ օգտագործելով realloc-ը: Ըստ C99 ստանդարտի՝ voidrealloc (void ptr, size_t չափը); realloc-ը տեղաբաշխում է հին օբյեկտը, որը մատնանշված է ptr-ով և ցուցիչ է վերադարձնում նոր օբյեկտին, որն ունի չափով սահմանված չափը:
Ո՞ր ֆունկցիան է օգտագործվում հիշողությունը թողարկելու համար:
ազատ ֆունկցիան օգտագործվում է հիշողությունը ազատելու համար, որը դինամիկ կերպով պահպանված է բլոկների համար և որն այլևս անհրաժեշտ չէ: Շարահյուսություն՝ void free (void block); Այն թողարկում է նշված ցուցիչի բլոկը:
Ի՞նչ է հիշողության վերաբաշխումը:
Երբ փորձ է արվում փոխել բուֆերի չափը ռեալոկ գործառույթին կանչելու միջոցով, ցուցիչը ստուգվում է վավերականության համար, եթե այն NULL արժեք չէ: Եթե դա վավեր է, ապա կույտային բուֆերի վերնագիրը ստուգվում է հետևողականության համար: Այնուհետև թողարկվում է բնօրինակ բուֆեր: …
Ո՞ր ֆունկցիան է թողնում հիշողությունը չնախաստորագրված:
14 Պատասխաններ. calloc-ը տալիս է զրոյական սկզբնավորվող բուֆեր, մինչդեռ malloc-ը թողնում է հիշողությունը չնախապատրաստված: