Ձեզ անհրաժեշտ է malloc C++-ում:
Ձեզ անհրաժեշտ է malloc C++-ում:

Video: Ձեզ անհրաժեշտ է malloc C++-ում:

Video: Ձեզ անհրաժեշտ է malloc C++-ում:
Video: "Ալոե"բույսը հակաբորբոքային է բուժում բազմաթիվ հիվանդություններ,պարունակում է օգտակար վիտամիններ💯 2024, Մայիս
Anonim

Դուք օգտագործել 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-ը պետք է լինի վեկտորային ցուցիչ: