Сайфиев ж. Ф. С++ тилига кириш услубий қўлланма


Хотиранинг сирқиб кетиши нима ?


Download 3.45 Mb.
bet61/79
Sana18.10.2023
Hajmi3.45 Mb.
#1707139
1   ...   57   58   59   60   61   62   63   64   ...   79
Bog'liq
cpp buxoro

Хотиранинг сирқиб кетиши нима ?


Кўрсаткичлар билан эътиборсиз ишлаш натижасида хотиранинг сирқиб кетишига йўл қўйиш мумкин. Бу кўрсаткич мурожаат қилиб турган хотира бўшатилмасдан, шу кўрсаткичга янги қиймат ўзлаштирилган вақтда рўй беради. Бундай ҳолатга қуйида мисол келтирилган:
1.unsigned short int*pPointer=new unsigned short int;
2. *pPointer = 72;
3. pPointer = new unsigned short int;
4. *pPointer = 84;
1 – cатрда кўрсаткич эълон қилиняпти ва unsigned short int типидаги ўзгарувчини сақлаш учун хотира ажратилаяпти. Навбатдаги сатрда ажратилган соҳага 72 қиймат ёзилди. 3 – сатрда эса кўрсаткичга хотира соҳасининг бошқа адреси ўзлаштирилди ва у адресдаги соҳага 84 қиймат ўзлаштирилди. Бу операциялардан кейин 72 қийматни сақлаб турган хотира соҳасига мурожаат қилиш имкони йўқолди. Чунки, бу соҳанинг кўрсаткичига янги қиймат берилди. Натижада, резервланган хотирани дастур ишини тугатгунча умуман ишлатиб бўлмайди. Бундай ҳолларда қуйидагича ёзув тўғри бўлар эди.
unsigned short int* pPointer= new unsigned short int;
*pPointer = 72;
delete pPointer;
pPointer = new unsigned short int;
*pPointer = 84;
Бу ҳолда ўзгарувчи учун ажратилган хотира тўғри бўшатилади.

Хотиранинг объектлар ўртасида динамик тақсимланувчи соҳасига обьектларни жойлаштириш.


Худди бутун типли ўзгарувчини динамик хотирага жойлаштириш сингари ихтиёрий обьектни ҳам объектлар ўртасида динамик тақсимланувчи соҳалда жойлаштиришимиз мумкин. Масалан, агар сиз Cat синфи обьектини ҳосил қилиб, бу обьектни ўзгартириш учун унинг адресини ўзида сақловчи кўрсаткич тузишингиз мумкин. Бу ҳолат ўзгарувчини стекка жойлаштиришга ўхшаб қолади. Бу операцияни синтаксиси худди бутун сонли ўзгарувчи учун бўлганидек қуйидагичадир:
Cat * pCat= new Cat.
Бу ҳолатда new оператори синфни бошланғич конструкторини, яъни параметрсиз конструкторини чақиради. Объектни тузишда у стекда ёки динамик хотира соҳасида жойлаштирилишидан қатъий назар доимо у тегишли синф конструктори чақирилади.



Download 3.45 Mb.

Do'stlaringiz bilan baham:
1   ...   57   58   59   60   61   62   63   64   ...   79




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