= () malloc()(); = () calloc()(, < element xotira hajmi>);
a) new amali yordamida. Uning sintaksisi:
b) malloc() va calloc() funksiyalari yordamida. Ularning sintaksisi:
Ajratilgan dinamik xotirani bo'shatish – delete yoki free.
Ko’rsatgichlar.
Misollar:
int* n = new int;
int* m = new int (10);
int* k = new int [10];
int* u = (int *) malloc(sizeof(int));
int* p = (int *) calloc(1, sizeof(int));
Misollar:
deleten;
delete[] p;
freeu;
Ko’rsatgich ustida amallar.
Ko'rsatkich ustida quyidagi amallar bajarilishi mumkin:
ob`yektga vositali murojat qilish amali;
qiymat berish amali;
ko'rsatkichga o'zgarmas qiymatni qo'shish amali;
ayirish amali;
inkremyent va dekryemyent amallari;
solishtirish amali;
turga keltirish amali;
Ko’rsatgich ustida amallar.
int n=5;
float x=1.0;
int *pi=&n;
float *px=&x;
void * p;
int * r, * r1;
px=(float *)&n;
p=px;
r=(int *)p;
r1=pi;
Agar har xil turdagi ko'rsatkichlarga qiymatlar berilsa, albatta turga keltirish amalidan foydalanish kerak:
Ko’rsatgich ustida amallar.
char * r = new char [5];
r++; // r ning keyingi qiymatiga o’tish
long * q = new long [53];
q++ ; // q ning keyingi qiymatiga o’tish
char * r = new char [5];
r+=3; // r ning qiymati 3 taga oshadi
long * q = new long [53];
q+=3 ; // q ning qiymati 12 taga oshadi
Inkrement:
Konstantaga qo'shish:
Massiv va Ko’rsatgichlar.
a[3]=4;
Massivning nomi – massivning boshlang'ich adresiga ko'rsatkichdir.
int a[5]={3,1,8,4,2}; //statik massiv
int *p; // ko'rsatkich int b; p = a; // ko'rsatkichga massivning //boshlang'ich adresini o'zlashtirish b = * p; // b = a[0]; b = *(p+2) // b = a[2];
int i=3;
cout<<“\n a[“<
Dinamik massivlar.
for ( i = 0; i < N; i++ )
cin >> A[i];
...
for ( i = 0; i < N; i++ )
{
A[i] = i;
cout << A[i] << " ";
}
Хotirani bo'shatish:
delete [] A;
Massivni o'chirish
Хotiradan joy ajratish:
A = new int[N];
elementlar soni
int *A;
Dinamik massivlar.
Хotirani dinamik taqsimlash standart funktsiyalari xotiradan massiv uchun kerak bo'ladigan uzilmas, yaxlit qismini topadi va uning boshlang'ich adresini qaytaradi
Хotirani dinamik taqsimlash standart funksiyalarini ishlatish uchun
#include #include
Хotiradan dinamik ob`yektni o'chirish uchun
free(ko'rsatkich);
Dinamik massivlar.
Dinamik massivni tashkil qilish va qiymatlarini kiritish:
#include #include #include int main() { int *a; // massiv boshiga ko’rsatkich int i, n; system("cls"); printf(“Massiv o’lchamini kiriting: "); scanf("%d", &n);
Dinamik massivlar.
a = (int*)malloc(n * sizeof(int)); // Xotiradan joy ajratish for (i = 0; i// Massiv ni to’ldirish printf("a[%d] = ", i); scanf("%d", &a[i]); } for (i = 0; i// Massivni ekranga chop etish free(a); // Massivni xotiradan o’chirish getchar(); getchar(); return 0; }
XULOSA
Xulosa o’rnida shuni ta’kidlab o’tish joizki, ko’rsatkichlardan o’zgaruvchilarning xotiradagi adresslari orqali qo’llashda foydalaniladi.
Xotirani taqsimlash uchun malloc() va calloc() funksiyalaridan foydalaniladi.
MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI