«Қазақстан тарихы, жалпы білім беру пәндері және ақпараттық жүйелер» кафедрасы


Сурет 3 – Динамикалық жадтың бӛлінуі



жүктеу 0,51 Mb.
бет30/105
Дата21.01.2022
өлшемі0,51 Mb.
#34296
түріЛекция
1   ...   26   27   28   29   30   31   32   33   ...   105
« аза стан тарихы, жалпы білім беру п ндері ж не а паратты ж йе

Сурет 3 – Динамикалық жадтың бӛлінуі



3. Getmem және Freemem процедуралары


Біз білеміз, NEW процедурасының параметрі тек қана типтендірілген кӛрсеткіш бола алады. Типтендірілмеген кӛрсеткіштермен жұмыс істеу үшін мына процедуралар қолданылады:

GETMEM (P, SIZE) – жадыны бӛлу; FREEMEM(P, SIZE) – жадыны босату. Мұнда Р – типтендірілмеген кӛрсеткіш;

SIZE – талап етілген не босатылатын үйме бӛлігінің байттық ӛлшемі.

GETMEM процедурасын бір шақыруда 65521 байтқа дейін динамикалық жадыны иелеуге болады.

GETMEM-FREEMEM процедураларын қолдану жалпы динамикалық жадымен жұмыс істеу сияқты, қарапайым ережені қатал сақтауды талап етеді: қанша кӛлемде жады иеленсе, сонша кӛлемде жадыны босату керек және қай адрестен бастап иеленген болса, сол адрестен бастап босатылады. Типтендірілмеген кӛрсеткіштердің ендірілуі(стандартты Паскальда жоқ болатын) типтерді айқын емес түрлендіруге кең мүмкіндіктер ашады. Ӛкінішке орай, NEW және DISPOSE процедураларын корректсіз қолдану типтерді күтілмеген түрлендіруге әкелуі мүмкін. Айталық, мынадай программа бар болсын:

var i,j : Integer;

r : Real; begin

new(i); {i := HeapOrg; HeapPtr:= HeapOrg + 2}

j := i; {j := HeapOrg}

j := 2;

dispose(i); {HeapPtr := HeapOrg} new(r); {r := HeapOrg; HeapPtr:= HeapOrg + 6} r := pi;

WriteLn(j) end.

Дисплей экранына не шығарылады? Бұл сұраққа жауап беру үшін HEAPPTR кӛрсеткішінің мәндерін бақылайық. Программа орындалу алдынан үйме басының адресі –HEAPORG-ке ие болған, бұл мән I кӛрсеткішіне ал, бұдан соң J кӛрсеткішіне беріледі. DISPOSE(I) орындалғаннан кейін үйме кӛрсеткіші қайтдан HEAPORG мәніне ие болды, осы адес NEW(R) процедурасындағы R кӛрсеткішіне беріледі. R адресі бойынша pi=3.14159 нақты саны орналастырылғаннан кейін, үйменің алғашқы 2 байтын осы санның ішкі кӛрінісінің бір бӛлігі иелейді. Бұл кезде J-де әлі де HEAPORG адресі сақталынған, содықтан WRITELN(J^) операторы pi санының 2 байтын бүтін санның ішкі кӛрінісі деп түсінеді( ӛйткені J – INTEGER типті кӛрсеткіш) және 8578 мәнін кӛрсетеді.




жүктеу 0,51 Mb.

Достарыңызбен бөлісу:
1   ...   26   27   28   29   30   31   32   33   ...   105




©g.engime.org 2024
әкімшілігінің қараңыз

    Басты бет
рсетілетін қызмет
халықаралық қаржы
Астана халықаралық
қызмет регламенті
бекіту туралы
туралы ережені
орталығы туралы
субсидиялау мемлекеттік
кеңес туралы
ніндегі кеңес
орталығын басқару
қаржы орталығын
қаржы орталығы
құрамын бекіту
неркәсіптік кешен
міндетті құпия
болуына ерікті
тексерілу мемлекеттік
медициналық тексерілу
құпия медициналық
ерікті анонимді
Бастауыш тәлім
қатысуға жолдамалар
қызметшілері арасындағы
академиялық демалыс
алушыларға академиялық
білім алушыларға
ұйымдарында білім
туралы хабарландыру
конкурс туралы
мемлекеттік қызметшілері
мемлекеттік әкімшілік
органдардың мемлекеттік
мемлекеттік органдардың
барлық мемлекеттік
арналған барлық
орналасуға арналған
лауазымына орналасуға
әкімшілік лауазымына
инфекцияның болуына
жәрдемдесудің белсенді
шараларына қатысуға
саласындағы дайындаушы
ленген қосылған
шегінде бюджетке
салығы шегінде
есептелген қосылған
ұйымдарға есептелген
дайындаушы ұйымдарға
кешен саласындағы
сомасын субсидиялау