այո
մերսի: բայց չաշխատեց![]()
լավ է, ոչինչ էլ գլուխ մի ցավացրեք, իմը շախմատն էր արդեն գրել եմ, էս ուրիշին էր պետք էն էլ թող ինքը մտածի
ժողովուրդ ջան ես էլի հարց ունեմ: սենց մի ծրագիր կա՝ # include <iostrime>............using namespace std......int main().........{ int n;............cout <<"mutqagrel zangvaci 4ap@"<<endl;........cin>>n;.........char*b=new char[ n];.....cout<<mutqagrel zangvaci tarer@"<<endl;...........for (int i=0,i<n,++i).......cin>>b[i]...... for(int i=0,I<n,++i)......{.....B[i]=char([i]+1) ........b[i] ..........cout<b[i]<<'' ";......}....................... for (int i=0,i<n,i++)....{...b[i]=char(b[i]-1)....................cout <<b[i]<<" ";.......} delet b ; return 0; } ....ես ծրագրում ինչա նշանակում char*b=new char[ n] տողը? ու մեկ էլ ես ծրագրի միջոցով տառերն են 1-ով ավելանում թե թվերը? ուղղակի char ա գրված դրա համար եմ հարցնում:
Դինամիկ և Ստատիկ զանգվածներ
Ստատիկ Զանգված։
Syntax․ char foo[10];
Նկարագրություն․ Ստատիկ զանգվածները ստեղծվում են stack-ում և ունեն automatic storage duration(չգիտեմ հայերեն ոնց ասեմ), այսինքն ծրագրավորողը ասյ զանգվածի համար, ո՛չ հիշողություն է allocate անում, ոչ էլ ազատում։ Այս զանգվածների զբաղեցված տարածքը ավտոմատ մաքրվում է ֆունկցիա-ի ավարտից հետո։ Այս զանգվածների չափերը պետք է հստակ նշված լինեն կոմպիլացիայի ժամանակ։
Դինամիկ Զանգված։
Syntax․ char* foo = new foo[n]; delete[] foo;
Նկարագրություն․ Դինամիկ զանգվածները ստեղծվում են heap-ում, սա նշանակում է, որ ծրագրավորողը պարտավոր է հիշողություն վերցնել այս զանգվածի համար, այնուհետև ազատել։ Ի տարբերություն ստատիկ զանգվածների այս զանգվածըների չափերը կարող են որոշվել runtime, այսինքն ծրագրի աշխատանքի ժամանակ։
Հիմա, եթե ծրագրի կոմպիլացիայի ժամանակ մենք գիտենք, թե զանգվածը ինչքան տեղ է զբաղեցնելու, այսինքն քանակը const է, այս դեպքում պետք է օգտագործել ստատիկ զանգված, հակառակ դեպքում, եթե օրինակ զանգվածի չափսը որոշվելու է user-ի արած input-ից ապա պետք է օգտագործել դինամիկ զանգված։
Հավելում․ դինամիկ զանգվածների փոխարեն կարելի է օգտագործել vector, vector-ի հիմնական տարբերությունը դինամիկ զանգվածից այն է, որ vector-ը հայտարարելուց հետո, ծրագրի ընթացքում մենք կարող ենք փոփոխել vector-ի չափսերը:
Lusina (09.05.2015)
մերսի շատ: Եվ վերջին հարցը. նախավերջին տողում ինչի ա գրված delete b: ուղղակի առանց դրա էլ փորձեցի աշխատեց էլի նույն ձևի: ինչ ֆունկցիա ա կատարում ետ տողը?
Արամ (09.05.2015)
մերսի շատ![]()
Ժողովուրդ ջան խնդրում եմ օգնեք դինամիկ զանգվածների մասին նյութ գտնեմ:
artak.amDe gustibus et coloribus non est disputandum.
Շատ եմ խնթրում օքնեք """""""Կազմել ծրագիր, որը կհաշվի և կարտածի տրված զույգ արժեք ունեցող տարերի
արտադրյալը"""""""
Այս պահին թեմայում են 1 հոգի. (0 անդամ և 1 հյուր)
Էջանիշներ