Динамички подаци

Статички типови података чувају се у делу меморије за податке. Њихов број (тј. меморија коју ће заузети) се декларише на почетку програма. Дакле, њихов број мора бити унапред познат. Програмер мора често да одвоји више меморијских локација за податке него што је заиста потребно, јер не зна шта ће корисник тражити од програма. Тако да програм често користи и десетоструко дуже низове и структуре него што ће корисник икад искористити.

Динамичке променљиве се разликују од статичких. Код ових типова података се не мора унапред знати колико ће променљивих бити потребно програму за рад. Меморијски простор за променљиве резервише се и ослобађа током извршења програма.

За потребе доделе меморије за динамичке променљиве користи се оператор new. Величина меморијског простора додељеног помоћу оператора new аутоматски се одређује на основу величине стварног податка. Вредност оператора new је показивач на податак који се ствара. Овим оператором могуће је иницијализовати податке. Овим оператором могуће је стварати низове података.

Синтакса:

new име_типа
new име_типа (почетна вредност)
new име_типа [дужина]

Име_типа је идентификатор податка за који се врши додела меморије. Може да буде и показивач уколико се врши додела меморије показивачима.

Почетна вредност може да буде било која, али мора да одговара типу податка коме се додељује.

Дужина се односи на дужину низа и има онолико димензија као што их има било који низ.

Дакле ако је у питању вектор (једнодимензиони низ), онда је то једна димензија, за матрице две…

За ослобађање меморије користи се оператор delete. Синтакса је:

delete адреса
delete [ ] адреса.

Адреса је неки израз који показује на податак који заузима динамичку меморију.

Немогуће је ослобађати простор додељен само неком елементу низа, те је потребно показати почетак низа. Само уколико ослобађамо меморију додељену низу користимо угласте заграде. У осталим случајевима оне нам нису потребне. Број елемената низа није потребно навести.

НАПОМЕНА: Приликом динамичке доделе меморије није могуће иницијализовати низ, већ елементи низа узимају неку случајну вредност па је потребно унети вредност за сваки члан низа.

One thought on “Динамички подаци

  1. Повратни пинг: Основне разлике програмских језика С и С++ у процедуралном погледу – Рачунари и програмирање

Оставите одговор

Попуните детаље испод или притисните на иконицу да бисте се пријавили:

WordPress.com лого

Коментаришет користећи свој WordPress.com налог. Одјавите се /  Промени )

Google+ photo

Коментаришет користећи свој Google+ налог. Одјавите се /  Промени )

Слика на Твитеру

Коментаришет користећи свој Twitter налог. Одјавите се /  Промени )

Фејсбукова фотографија

Коментаришет користећи свој Facebook налог. Одјавите се /  Промени )

Повезивање са %s