Video: Ձեզ անհրաժեշտ է malloc C++-ում:
2024 Հեղինակ: Lynn Donovan | [email protected]. Վերջին փոփոխված: 2023-12-15 23:48
Դուք օգտագործել malloc երբ քեզ պետք է հատկացնել օբյեկտներ, որոնք պետք է գոյություն ունեն ընթացիկ բլոկի կատարման ժամկետից դուրս (որտեղ պատճենը վերադարձվում է պիտի լինել ևս թանկ), կամ եթե դուք պետք է հատկացնեք հիշողությունը ավելի մեծ, քան այդ կույտի չափը (այսինքն՝ 3mb լոկալ stack զանգվածը վատ գաղափար է):
Բացի այդ, Ձեզ անհրաժեշտ է malloc C++-ում:
Տարբերությունը պարզ է. malloc հատկացնում է հիշողություն, մինչդեռ նորը հատկացնում է հիշողություն ԵՎ կանչում է օբյեկտի կոնստրուկտորին դու «Հիշողություն է հատկացնում: Այսպիսով, եթե դու սահմանափակված է C-ով, դու պետք է երբեք չօգտագործել malloc , հատկապես երբ գործ ունենք C++ առարկաներ.
Կարելի է նաև հարցնել՝ ի՞նչ իմաստ ունի malloc-ը։ C-ում գրադարանի ֆունկցիան malloc օգտագործվում է կույտի վրա հիշողության բլոկ հատկացնելու համար: Ծրագիրը մուտք է գործում հիշողության այս բլոկը ցուցիչի միջոցով, որը malloc վերադառնում է. Երբ հիշողությունն այլևս անհրաժեշտ չէ, ցուցիչը փոխանցվում է ազատ, որը տեղաբաշխում է հիշողությունը, որպեսզի այն օգտագործվի այլ նպատակներով:
Այս կերպ C++-ում կա՞ malloc:
The malloc () գործում է C++ հատկացնում է ա չնախնականացված հիշողության բլոկ և վերադարձներ ա void ցուցիչ դեպի որ առաջին բայթը որ հատկացված հիշողության բլոկը, եթե որ բաշխումը հաջողվում է. Եթե որ չափը զրոյական է, որ վերադարձված արժեքը կախված է որ իրականացումը որ գրադարան։ Այն կարող է լինել կամ չլինել ա զրոյական ցուցիչ:
Ինչպե՞ս եք մշակում կառույցը:
Ձեր ուզածի համար ձեզ հարկավոր է երկու malloc () s. կառուցվածք Վեկտոր *y = malloc (*y չափը); /* Նշեք ցուցիչը */ y->x = calloc(10, sizeof *y->x); Առաջին տողում դուք հիշողություն եք հատկացնում վեկտոր օբյեկտի համար: malloc () վերադարձնում է ցուցիչը հատկացված հիշողությանը, ուստի y-ը պետք է լինի վեկտորային ցուցիչ: