Laboratoriya №2. Dinamiki massivlər. Funksiyaya massivlərin göstərici kimi ötürülməsi


Download 34.09 Kb.
bet1/4
Sana09.03.2023
Hajmi34.09 Kb.
#1254436
  1   2   3   4
Bog'liq
Laboratoriya 2. Dinamiki massivlərdən istifadə etməklə proqramlaşdırma


Laboratoriya №2. Dinamiki massivlər. Funksiyaya massivlərin göstərici kimi ötürülməsi
Göstəricilərə məxsus əsas özəlliklərdən biri də onlar vastəsilə dinamik olaraq, yəni proqram icra olunan zaman yaddaşda yer ayırmaq və istifadə etdikdən sonra sonra həmin ayrılmış yeri azad etmək olar. Bunun üçün C++ dilində müvafiq olaraq new delete əmrlərindən istifadə olunur.
New əmri vastəsilə yaddaşda dinamik yer ayırmaq üçün və həmin yaddaş sahəsini verilmiş göstəriciyə mənimsətmək üçün aşağıdakı sintaksisdən istifadə edirlər:
göstərici = new tip;
Bu zaman qeyd olunan tipli dəyişən üçün yaddaşda yer ayrılacaq və göstəriciyə mənimsədiləcək. delete x; -isə x göstəricisi üçün ayrılan yaddaş sahəsini azad edəcək.
Nümunə:
#include
#include
using namespace std;
int main ()
{ int *x;
x = new int;
*x = 21;
cout << "x = " << x << "\n" << "*x = " << *x;
delete x;
getch ();
}

Dinamiki massivlərin yaradılması

Qeyd elədik ki new operatoru ilə yaddaşda yalnız bir dəyişən üçün yox, tələb olunan sayda elementdən ibarət massivüçün də yer ayıra bilərik. Bu zaman elementlərin sayını tip –dən sonra kvadrat mötərizə içində göstərməliyik. göstərici = new tip[say];


Məsələn: A = new float[6]; -Bu təsvir zamanı A massivi həqiqi tipli 6 element üşün yaddaş ayrılacaq. Elementlərin sayını dəyişənlə də ifadə etmək olar. Bu halda dəyişənin qiyməti əvvəlcədən məlim olmalıdır. Məsələn
k=5; St = new char[6]; və ya cin>>n; p=new int[n];
Dinamik massiv üçün ayrılan yeri azad etmək üçün isə aşağıdakı yazılışdan istifadə olunur:
delete[] göstərici;
Burada delete əvəzinə delete[] yazmağımız adi dəyişən üçün deyil, massivüçün ayrılan yeri silməli olduğumuzu bildirir.Məsələn delete [] p;
Aşağıdakı misalda x dinamiki massivinin 6 tam tipli elementi üçün yaddaş ayrılır. Klaviaturadan həmin elementlərə qiymət daxil edilir və çap edilir.
#include
#include
using namespace std;
int main (){
int i, *x;
x = new int[6];
for (i=0; i<5; ++i)
cin>>x[i];
for (i=0; i<5; ++i)
cout << "x[" << i << "] = " << x[i] << " " ;
delete[] x;
getch ();
}

Download 34.09 Kb.

Do'stlaringiz bilan baham:
  1   2   3   4




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling