Ո՞ր ֆունկցիան է վերաբաշխում հիշողությունը:

Ո՞ր ֆունկցիան է վերաբաշխում հիշողությունը:
Ո՞ր ֆունկցիան է վերաբաշխում հիշողությունը:
Anonim

C ծրագրավորման լեզվում realloc ֆունկցիան օգտագործվում է հիշողության բլոկի չափը փոխելու համար, որը նախկինում հատկացվել էր: Realloc ֆունկցիան հատկացնում է հիշողության բլոկ (որը կարող է այն ավելի մեծ կամ փոքր դարձնել, քան բնօրինակը) և անհրաժեշտության դեպքում պատճենում է հին բլոկի պարունակությունը հիշողության նոր բլոկում:

Ինչպե՞ս եք վերաբաշխում հիշողությունը:

Դինամիկ տեղաբաշխված հիշողության չափը կարելի է փոխել՝ օգտագործելով realloc-ը: Ըստ C99 ստանդարտի՝ voidrealloc (void ptr, size_t չափը); realloc-ը տեղաբաշխում է հին օբյեկտը, որը մատնանշված է ptr-ով և ցուցիչ է վերադարձնում նոր օբյեկտին, որն ունի չափով սահմանված չափը:

Ո՞ր ֆունկցիան է օգտագործվում հիշողությունը թողարկելու համար:

ազատ ֆունկցիան օգտագործվում է հիշողությունը ազատելու համար, որը դինամիկ կերպով պահպանված է բլոկների համար և որն այլևս անհրաժեշտ չէ: Շարահյուսություն՝ void free (void block); Այն թողարկում է նշված ցուցիչի բլոկը:

Ի՞նչ է հիշողության վերաբաշխումը:

Երբ փորձ է արվում փոխել բուֆերի չափը ռեալոկ գործառույթին կանչելու միջոցով, ցուցիչը ստուգվում է վավերականության համար, եթե այն NULL արժեք չէ: Եթե դա վավեր է, ապա կույտային բուֆերի վերնագիրը ստուգվում է հետևողականության համար: Այնուհետև թողարկվում է բնօրինակ բուֆեր: …

Ո՞ր ֆունկցիան է թողնում հիշողությունը չնախաստորագրված:

14 Պատասխաններ. calloc-ը տալիս է զրոյական սկզբնավորվող բուֆեր, մինչդեռ malloc-ը թողնում է հիշողությունը չնախապատրաստված:

Խորհուրդ ենք տալիս: