Dasturlash 1 swd1316 Ko’rsatkichlar va dinamik xotira bilan ishlash. Dinamik massiv


Download 18.84 Kb.
bet4/4
Sana02.12.2023
Hajmi18.84 Kb.
#1780141
1   2   3   4
Bog'liq
1) 7-mavzu (Dinamik massivlar)

Xotiradan joy ajratish.
  • new ();
  • = () 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:
      • delete n;
      • delete [] p;
      • free u;
  • Ko’rsatgich ustida amallar.
  • Ko'rsatkich ustida quyidagi amallar bajarilishi mumkin:
  • qiymat berish amali;
  • ko'rsatkichga o'zgarmas qiymatni qo'shish amali;
  • ayirish amali;
  • 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
      • voidmalloc(Massivning baytdagi o'lchami); voidcalloc(elementlar soni, elementning baytdagi o'lchami);
      • #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
  • ISHNIYAZOV ODIL
  • OLIMOVICH
  • Informatika asoslari kafedrasi katta o’qituvchisi
  • E’TIBORINGIZ UCHUN RAXMAT!

Download 18.84 Kb.

Do'stlaringiz bilan baham:
1   2   3   4




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