new delete operators c with examples
Истражите све о новим / брисање оператора у Ц ++.
Већ смо видели променљиве и статичке низове у Ц ++-у у нашим ранијим водичима.
Што се тиче меморије додељене променљивим и низовима, преводилац додељује статичку меморију у зависности од типа података (у случају променљивих) и димензија предвиђених за низове.
Меморија коју додељује компајлер додељује се на стеку. Али у већини случајева можда нисмо свесни тачне количине меморије која нам је потребна.
=> Овде прочитајте популарне серије обуке за Ц ++.
Оно што бисмо урадили је да доделимо и раздвојимо онолико меморије колико желимо, а такође и када и када то желимо. То се постиже динамичким додељивањем меморије. За разлику од статичке алокације, динамички додељена меморија додељује се на гомилу.
Динамичко додељивање меморије је корисно, јер можемо доделити меморију променљиве величине, што не можемо постићи помоћу додељене меморије компајлера. Имамо флексибилност додељивања меморије када нам је потребна и де-алокације када нам није потребна.
Али осим ове употребе, морамо такође имати на уму да је у случају динамички додељене меморије одговорност корисника да изврши делоцирање меморије. Ако заборавимо да додијелимо меморију, то узрокује цурење меморије при чему се меморија не ослобађа док се програм не заврши.
То би могло резултирати употребом превише меморије и тиме узроковати озбиљна уска грла.
Шта ћете научити:
- Динамичко додељивање меморије
- „Нови“ Оператор
- Коришћење „новог“ оператора са низовима
- Оператор за брисање
- Закључак
- Препоручено читање
Динамичко додељивање меморије
Језик Ц користи функције „маллоц“, „цаллоц“ и „реаллоц“ за динамичку алокацију меморије. Да би додијелио меморију која је динамички додијељена овим функцијама, користи ‘бесплатни’ позив функције. Језик Ц ++ такође подржава ове функције из језика Ц за алокацију / де-алокацију меморије.
Поред ових функција, Ц ++ представља два нова оператора који су ефикаснији за управљање динамичком меморијом. То су „нови“ оператор за додељивање меморије и „брисање“ за раздвајање меморије.
У овом упутству ћемо сазнати више о новим и оператерима брисања на језику Ц ++.
„Нови“ Оператор
Оператор „нови“ додељује меморију за променљиву или било који други ентитет на гомили.
Општа синтакса оператора „нови“ је:
pointer_variable_of_data_type = new data type;
Горе наведени тип података може бити било који ваљани тип података који подржава Ц ++. То може бити уграђени тип података или било који кориснички дефинисани тип података, укључујући класе и структуре.
На пример,
копирајте ДВД на чврсти диск бесплатно
int *ptr = NULL; ptr = new int();
У горњем примеру, прогласили смо променљиву показивача ‘птр’ за цео број и иницијализовали је за нулу. Затим помоћу „новог“ оператора додељујемо меморију променљивој „птр“. Ако је меморија доступна на хрпи, друга изјава ће бити успешна. Ако нема доступне меморије, тада нови оператер баца изузетак “стд :: бад_аллоц”.
Стога је боља идеја проверити да ли је нови оператор успешно доделио меморију пре употребе ове променљиве или ентитета у програму.
Такође можемо иницијализовати променљиве користећи нови оператор на следећи начин:
ptr = new int(10);
У горњем примеру, променљива показивача „птр“ је додељена меморија помоћу новог оператора, а истовремено је додељена вредност 10. Ово је још један начин иницијализације у Ц ++.
Коришћење „новог“ оператора са низовима
Још једна употреба „новог“ оператора је додељивање меморије за низове. Овде наводимо број елемената који ће бити додељени за низ.
Пример доделе елемената низа помоћу оператора „нев“ је дат у наставку:
int* myarray = NULL; myarray = new int(10);
Овде нови оператор додељује 10 непрекидних елемената целобројног типа променљивој показивача миарраи и враћа показивач на први елемент миарраи.
Оператор за брисање
Програмер мора експлицитно ослободити меморију која се динамички додељује помоћу новог оператора. У ту сврху имамо оператора „брисање“.
Општа синтакса оператора делете је:
delete pointer_variable;
Тако можемо ослободити меморију додељену горњој променљивој птр на следећи начин:
delete ptr;
Ова изјава ослобађа меморију додељену променљивој „птр“ назад у меморијско спремиште.
Такође можемо користити оператер делете за ослобађање меморије додељене низовима.
На пример,меморија додељена горњем низу миарраи може се ослободити на следећи начин:
delete() myarray;
Обратите пажњу на индекс индекса који се користи са оператором брисања. То је зато што, пошто смо доделили низ елемената, морамо ослободити све локације.
Уместо тога, да смо користили изјаву,
delete myarray;
Знамо да миарраи показује на први елемент низа, тако да ће горњи израз избрисати само први елемент низа. Коришћење индекса „()“ означава да је променљива чија се меморија ослобађа низ и да се ослободи сва додељена меморија.
Следећи пример програмирања приказује употребу нових и брисање оператора у Ц ++.
// Example program #include #include using namespace std; int main() { int *ptr = NULL; ptr = new int(); int *var = new int(12); if(!ptr) { cout<<'bad memory allocation'< Излаз:
меморија је успешно додељена
* птр = 10
* вар = 12
миарраи вредности: 1 2 3 4 5 6 7 8 9 10
Снимак екрана за исти дат је у наставку.
како репродуковати торрент датотеку

У горњем примеру кода показали смо употребу оператора нев и делете. Користили смо оператер „нев“ да доделимо меморију за променљиву, низове и као и да иницијализујемо другу променљиву са вредношћу. Затим те ентитете бришемо помоћу оператора делете.
Закључак
Овде се ради о новим и делете оператерима Ц ++ што се тиче стандардних типова података. Такође можемо користити нове и брисати операторе за кориснички дефинисане типове података као класе и структуре.
Сазнаћемо више о употреби ових оператора за креирање објеката када научимо објектно оријентисано програмирање помоћу Ц ++.
=> Овде погледајте водич за почетнике за Ц ++.
Препоручено читање
- Примери аритметичких и логичких оператора скрипте љуске Уник
- МонгоДБ Ажурирање и брисање докумената са примерима
- Ц ++ оператори, типови и примери
- Питхон Оператори
- Водич за Питхон ДатеТиме са примерима
- Изрежи команду у Унику са примерима
- Мехурићи сортирани на Ц ++ са примерима
- Синтакса наредбе Уник Цат, опције са примерима