Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
REFERAT / Dinamikalıq yadtı ajıratıw.docx
Скачиваний:
0
Добавлен:
14.01.2024
Размер:
110.77 Кб
Скачать

ÓZBEKSTAN RESPUBLIKASÍ JOQARÍ BILIMLENDIRIW,

ILIM HÁM INNOVACIYALAR MINISTRLIGI

MUHAMMED AL-XOREZMIY ATÍNDAǴÍ TASHKENT INFORMACIYALÍQ TEXNOLOGIYALARÍ UNIVERSITETI

NÓKIS FILIALÍ

TELEKOMMUNIKACIYA TEXNOLOGIYALARÍ HÁM

KÁSIPLIK TÁLIM FAKULTETI

Informaciya qáwipsizligi baǵdarı 1-kurs studenti

“Programmalastíríw” páninen

ÓZBETINSHE JUMÍS

Orınlaǵan: Genjebaev S.

Qabıllaǵan: Kalmuratov B.

Nókis – 2024

Jobası:

a) Bólek ózgeriwshilerdiń dinamikalıq bólistiriwi

b)Dinamikalıq yadtı bólistiriw qanday isleydi?

c)Null kórsetkishler hám dinamikalıq yad

d)Juwmaqlawshı bólim

e)Paydalanılǵan ádebiyatlar

Dinamikalıq yadtı ajıratıw zárúrshiligi

C++ yadtı bólistiriwdiń ush tiykarǵı túrin qollap -quwatlaydı, olardan ekewin siz qashannan berli kórgensiz.

Statikalıq yadtı ajıratıw statikalıq hám global ózgeriwshiler ushın ámelge asıriladı. Bul túrdegi ózgeriwshiler ushın yad programmasıńız jumısqa túskende bir ret ajratıladı hám pútkil omiri dawamında saqlanıp qaladı.

Funkciya parametrleri hám jergilikli ózgeriwshiler ushın avtomatikalıq yad ajıratıw ámelge asıriladı. Bul túrdegi ózgeriwshiler ushın yad sáykes keletuǵın blokǵa kirisiwde ajratıladı hám bloktan shıǵıwda qansha kerek bolsa, bosatiladi.

Dinamikalıq yad bólistiriwi - bul maqalanıń teması.

Statikalıq hám avtomatikalıq ajıratıw eki ulıwma zatqa iye:

Ózgeriwshi/massiv kólemi kompilyatsiya waqtında málim bolıwı kerek.

Yad avtomatikalıq túrde ajratıladı hám bosatiladi (ózgeriwshi jaratılǵanda/yo'q etilgende).

Kóbinese bul normal jaǵday. Biraq, ádetde sırtqı (paydalanıwshı yamasa fayl) kirgiziw menen islewde bul sheklewlerdiń biri yamasa ekewi mashqalaǵa alıp keletuǵın jaǵdaylarǵa dus kelesiz.

Mısal ushın, biz kimning bolıp tabıladı atın saqlaw ushın qatardan paydalanıwdı qálewimiz múmkin, lekin ol kiritilgunga shekem bul at qansha dawam etiwin bilmaymiz. Yamasa biz disktaǵı birpara jazıwlardı oqıwdı qáleymiz, lekin qansha jazıwlar bar ekenin aldınan bilmaymiz. Yamasa biz oyınshın óltiriwge urınıp atırǵan ózgeriwshen sanlı haywanlar menen oyın jaratılıwmasımız múmkin (bul waqıt ótiwi menen birpara jırtqısh haywanlar o'lib, jańaları payda bolǵanda ózgeredi).

Eger kompilyatsiya waqtında hámme zattıń kólemin járiyalawımız kerek bolsa, biz ete alatuǵın eń jaqsı zat bizge kerek bolatuǵın ózgeriwshilerdiń maksimal kólemin shama etiwge háreket qılıw jáne bul etarli dep úmit etemiz:

Belgi atı [25](char name); // at 25 belginen kem bolıwına úmit etemiz!

Jazıw jazıwı [500](record ); // 500 den kem jazıwlar bar dep úmit etemiz!

Jırtqısh haywan [40](monster); // maksimal 40 ta jırtqısh haywanlar

Kópburchakni kórsetiw[30000](polygon rendering);// Bul 3 D kórsetiwde 30 000 den artıq kópburchak bolıwı kerek!

Bul keminde tórtew sebepke kóre nadurıs qarar :

Birinshiden, eger ózgeriwshiler rasında isletilmasa, ol yadtı paydasız sarplaydı. Mısal ushın, eger biz hár bir at ushın 25 belgi ajratsak, lekin atlar ortasha tek 12 belginen ibarat bolsa, biz tiykarınan kerek bolǵanınan eki ese kóp paydalanamız. Yamasa joqarıdaǵı renderlash dızbekin kórip shıǵıń : eger renderlashda tek 10 000 kópburchak isletilse, bizde paydalanilmagan 20 000 kópburchak yad bar!

Ekinshiden, yaddıń qaysı bıytları tiykarınan isletilineyotganligini qanday bilesiz? Qatarlar ushın bul ápiwayı : \0 menen baslanǵan qatar anıq isletilmaydi. Jırtqısh haywan [24]-ne? Ol házir tirime yamasa ólikpe? Bul aktivni nofaol elementlerden ajıratıwdıń qanday da usılların talap etedi, bul bolsa quramalılıqtı asıradı hám qosımsha yaddan paydalanıwı múmkin.

Úshinshiden, kópshilik ápiwayı ózgeriwshiler (atap aytqanda, ózgermeytuǵın dızbekler) stek dep atalatuǵın yad bólegine ajıratılǵan. Programma ushın stek yadı muǵdarı ádetde júdá kishi - visual Studio únsizlik boyınsha stek kólemin 1 MB etip ornatadı. Eger siz bul nomerden asıp ketsangiz, stek to'lib ketiwi júz boladı hám operatsion sistema programmanı jabadı.

visual Studio'da bunı tómendegi programmanı jumısqa túsirganingizda kóriwińiz múmkin:

int main()

{

int array[1000000]; //Bir million int tipindegi sanlardi bolistiremiz.

}

Tek 1 MB yadtı sheklew kóplegen programmalar, ásirese grafikalar menen shuǵıllanatuǵın programmalar ushın mashqalalı boladı.

Tórtinshiden, eń áhmiyetlisi, bul jasalma shegaralarǵa va/yoki dızbektiń to'lib ketiwine alıp keliwi múmkin. Eger paydalanıwshı disktan 600 dane jazıwdı oqıwǵa háreket qilsa ne boladı, lekin biz maksimal 500 dane jazıw ushın yad ajratdik? Yamasa biz paydalanıwshına tek 500 dane jazıwdı oqıp shıqqannan keyin qáte etiwimiz kerek, yamasa (eń jaman jaǵdayda, biz bul jumıstı ulıwma kórip shıqpaymız ) jazıwlar qatarın toltırıp, qandayda bir jamanlıq júz bolıwın baqlawımız kerek.

Jaqsıyamki, bul máseleler dinamikalıq yad ajıratıw járdeminde ańsatǵana sheshiledi. Dinamikalıq yadtı bólistiriw - bul kerek bolǵanda operatsion sistemadan yad soraw ushın programmalardı jumısqa túsiriw usılı. Bul yad programmanıń sheklengen stek yadınan kelip shıqpaydı, kerisinshe, ol uyma dep atalatuǵın ádewir ulken operatsion sistema tárepinen basqarılatuǵın yad háwizinen ajıratılǵan. Zamanagóy mashinalarda top kólemi gigabayt bolıwı múmkin.

Соседние файлы в папке REFERAT