Программалау оқулық Алматы, 012 Қазақстан Республикасы Білім жəне ғылым министрлігінің «Оқулық»


// 1 52 int* m = new int (10)



Pdf көрінісі
бет49/466
Дата20.07.2022
өлшемі3,66 Mb.
#37798
түріПрограмма
1   ...   45   46   47   48   49   50   51   52   ...   466
Байланысты:
pavlovskaia-jogargy-dengeili

// 1


52
int* m = new int (10);
// 2
int* q = new int [10]; // 3
□ malloc
1
функциясының көмегімен:
 int* u = (int *)malloc(sizeof(int)); // 4
Жоғарыдағы мысалдың 
1
операторындағы 
new
операциясы 
int
типіндегі 
шаманы орналастыруға жеткілікті болатын динамикалық жады аймағын 
бөліп, осы аймақтың бастапқы адресін 
n
айнымалысында сақтауды орын-
дайды. Ал 
n
айнымалысының өзіне жады бөлу (нұсқауышты орналастыруға 
жеткiлiктi көлемде орын беру) программаны компиляциядан өткізу кезеңінде 
орындалады. 
2
операторында (жоғарыда аталған əрекеттерден басқа) қосымша бөлінген 
динамикалық жадыны 10 мəнімен инициалдау жүзеге асырылады.
3
операторындағы 
new
операциясы 
int
типті 10 санға (10 элемент-
тен тұратын жиым) арналған жады бөлу ісін орындайды жəне осы жады 
аймағының бастапқы адресін жиымның атауы ретінде қарастыруға болатын 
q
айнымалысына жазып қояды. Жиымның атын қолдану арқылы оның кез кел-
ген элементін пайдалануға болады. Жиымдар туралы 57 б. қараңыз. 
Егер жады бөлу əрекетін орындау мүмкін болмаса, онда стандарт бойынша 
bad_alloc
ерекше операциясы туындауы тиіс (олар туралы «Аластамаларды 
өңдеу» бөлімінде – 240 б., ал жады бөлу кезіндегі қателіктер туралы 412 б. 
мəліметтер берілген).
4
операторда дəл 
1
оператордағы сияқты əрекеттер орындалады, бiрақ олар 
С кiтапханасынан мұраланған 
malloc
жады бөлу функциясының көмегімен 
атқарылады. Функциға тек бiр параметр – бөлінетін жады көлемі байтпен 
беріледі. 
(int*)
конструкциясы нұсқауыштың функциядан қайтарылатын 
типін қажетті типке түрлендіру үшiн қолданылады (типтерді айқын түрде 
түрлендіру туралы 249 б. қараңыз). Егер жады бөлу мүмкін болмаса, онда 
функция 0 мəнін қайтарады.


Достарыңызбен бөлісу:
1   ...   45   46   47   48   49   50   51   52   ...   466




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

    Басты бет