C++ da massivlardan foydalangan holda dasturlash reja: C/C++ dasturlash tili haqida va Massivlar
Download 19.63 Kb.
|
C DA MASSIVLARDAN FOYDALANGAN HOLDA DASTURLASH
Massivlar
C dagi massiv turlari odatda kompilyatsiya vaqtida belgilangan statik kattalikka ega. (Keyingi C99 standarti ham o'zgaruvchan uzunlikdagi massivlar shaklini yaratishga imkon beradi.) Shu bilan birga, standart kutubxonaning malloc funktsiyasidan foydalangan holda ish vaqtida xotirani blokini (ixtiyoriy kattalikdagi) ajratish va uni massiv sifatida ko'rib chiqish mumkin. Massivlar va ko'rsatgichlarni C ga birlashtirish e'lon qilingan massivlarni va bu dinamik ravishda ajratilgan modellashtirilgan massivlarni deyarli bir-birining o'rnida bo'lishini anglatadi.Massivlarga ko'rsatgichlar orqali har doim (samarali) kirish imkoni berilganligi sababli, qatorga kirish odatda asosiy massivning kattaligiga qarab tekshirilmaydi, lekin ba'zi kompilyatorlar imkoniyat sifatida chegaralarni tekshirishni ta'minlashi mumkin. Shunday qilib, massiv chegaralarini buzish beparvolik kodida mumkin va juda tez-tez uchraydi va turli xil oqibatlarga olib kelishi mumkin, jumladan xotiraga noqonuniy kirish, ma'lumotlarning buzilishi, buferning haddan tashqari ko'payishi va ish vaqti istisnolari. Agar chegara tekshiruvi zarur bo'lsa, uni qo'lda bajarish kerak.C ko'p o'lchovli massivlarni e'lon qilish uchun maxsus qoidalarga ega emas, aksincha, xuddi shu narsani bajaradigan massivlarni e'lon qilish uchun tip tizimidagi rekursiyaga asoslanadi. Natijada paydo bo'lgan "ko'p o'lchovli massiv" ning indeks qiymatlari qatorlarning o'sish tartibida o'sib borishi mumkin.Ko'p o'lchovli massivlar odatda matritsalarni saqlash uchun raqamli algoritmlarda (asosan qo'llaniladigan chiziqli algebradan) foydalaniladi. S qator tuzilishi ushbu aniq vazifa uchun juda mos keladi. Biroq, massivlar shunchaki ko'rsatgich sifatida uzatilganligi sababli, massiv chegaralari ma'lum bo'lgan sobit qiymatlarga ega bo'lishi yoki ularni talab qiladigan har qanday kichik dasturga aniq o'tishi kerak va dinamik kattalikdagi massivlarning massivlariga er-xotin indekslash yordamida kirish mumkin emas. (Buning uchun vaqtinchalik echim - ustun ko'rsatgichlarining qo'shimcha "qatorli vektori" bilan massivni ajratish.)C99 odatdagi S massivlari bilan bog'liq muammolarning barchasini emas, balki barchasini hal qiladigan "o'zgaruvchan uzunlikdagi massivlarni" taqdim etdi. Download 19.63 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling