www.wikidata.uk-ua.nina.az
NULL u movah programuvannya Si i C makros ogoloshenij u zagolovnomu fajli stddef h ta inshih zagolovnih fajlah Znachennyam cogo makrosa ye zalezhna vid realizaciyi konstanta nulovogo vkazivnika angl null pointer constant Konstanta nulovogo vkazivnika ce cilochiselnij konstantnij viraz zi znachennyam 0 abo tilki v Si takij samij viraz ale zvedenij do tipu void Konstanta nulovogo vkazivnika zvedena do bud yakogo tipu vkazivnikiv ye nulovim vkazivnikom Garantuyetsya sho nulovij vkazivnik ne dorivnyuye vkazivniku na bud yakij ob yekt v shirokomu sensi slova bud yaki dani abo funkciyu Garantuyetsya sho bud yaki dva nulovih vkazivniki rivni mizh soboyu Rozimenuvannya nulovogo vkazivnika ye operaciyeyu z neviznachenoyu povedinkoyu Inakshe kazhuchi realizaciya nadaye specialne znachennya konstantu nulovogo vkazivnika yaku mozhna prisvoyiti bud yakomu vkazivniku i takij vkazivnik pid chas porivnyannya ne dorivnyuvatime bud yakomu pravilnomu vkazivniku Tobto mozhna vvazhati sho nulovij vkazivnik ne mistit pravilnoyi adresi v pam yati Zmist 1 Vikoristannya 2 Rozmirnist vkazivnika 3 Rozimenovuvannya nulovih vkazivnikiv 4 Nulovi vkazivniki v C 5 Div takozh 6 Primitki 7 PosilannyaVikoristannya RedaguvatiNulovi vkazivniki pridumani yak zruchnij sposib poznachiti vkazivniki yaki ne vkazuyut na pravilnu adresu v pam yati Napriklad pid chas ogoloshennya vkazivnika yak avtomatichnoyi zminnoyi jogo znachennya ne viznachene Shob poznachiti sho cej vkazivnik she ne mistit pravilnoyi adresi v pam yati takomu vkazivniku prisvoyuyut konstantu nulovogo vkazivnika void f void int x NULL Horoshim stilem programuvannya ye prisvoyuvannya vkazivniku pislya vivilnennya pam yati na yaku vin posilavsya nulovogo vkazivnika Krim cogo zastosuvannya obnulennya vkazivnikiv aktualne dlya bezpeki vivilnennya pam yati operaciya delete v C free v Si bezpechna dlya nulovogo vkazivnika Napriklad TYPE foo new TYPE vikoristannya foo delete foo foo NULL yakijs kod programi delete foo POMILKA Pamyat vzhe nedostupnatodi yak u takomu varianti pomilki ne budeTYPE foo new TYPE vikoristannya foo delete foo foo NULL foo NULL foo NULL yakijs kod programi delete foo pomilki nemaye delete pereviryaye znachennya fooRozmirnist vkazivnika RedaguvatiPid chas vikliku funkciyi v odin z argumentiv mozhna peredati NULL Makros NULL u riznih kompilyatorah mozhna viznachiti riznimi sposobami zokrema define NULL 0 define NULL void 0 U pershomu vipadku NULL maye tip int a v drugomu tip void Isnuyut arhitekturi de sizeof int sizeof void todi na riznih platformah do funkciyi nadhoditime rizna kilkist bajtiv sho mozhe porushiti yiyi robotu Nini robitsya sproba virishiti cyu problemu v Si vvedennyam nullptr div propoziciyu N 2394 1 Rozimenovuvannya nulovih vkazivnikiv RedaguvatiRozimenuvannya nulovogo vkazivnika ye operaciyeyu z neviznachenoyu povedinkoyu Na realizaciyu ne nakladayetsya zhodnih obmezhen mozhe statisya napriklad zvernennya do pam yati ne priznachenoyi dlya vikoristannya danoyu programoyu tobto pri chitanni bude prochitano smittya a pri zapisi znachennya potrapit v dilyanku pam yati sho ne nalezhit programi Napriklad u DOS zapis za nulovoyu adresoyu zatre prinajmni nulovij vektor pererivan tak sho nastupnij viklik int 0 prizvede najpevnish do zavisannya sistemi Odnak najchastishe ce prizvodit do pomilki chasu vikonannya yaksho v operacijnij sistemi realizovano zahist pam yati i dostup do nevidilenoyi procesu pam yati blokuyetsya Napriklad u Windows 9x povidomlennya Zagalna pomilka zahistu Programa vikonala nepripustimu operaciyu i bude zakrita angl general protection fault GPF vivoditsya najchastishe v tih vipadkah koli programa zvertayetsya do pam yati za nekorektnim zokrema j neinicializovanim abo vzhe zvilnenim vkazivnikom V UNIX podibnih operacijnih sistemah u takih situaciyah proces otrimuye signal SIGSEGV i jogo opracovuvach vivodit povidomlennya Segmentation fault Nulovi vkazivniki v C RedaguvatiYaksho brati konkretnu realizaciyu NULL za sircevimi fajlami to vin mozhe buti viznachenim yak void 0 abo yak 0 Vikoristannya NULL u proektah movoyu C mozhe prizvoditi do pomilok Naprikladint ClassName pf NULL prizvede do pomilki kompilyaciyi v razi yaksho NULL viznacheno yak void 0 napriklad oposeredkovano vklyucheno zagolovok de standartne dlya C viznachennya NULL perekrivayetsya Tomu v programah na C ne rekomenduyetsya vikoristovuvati NULL u viglyadi void 0 U standarti C 11 dlya poznachennya nulovogo vkazivnika dodano nove klyuchove slovo nullptr 2 Div takozh RedaguvatiPomilka segmentaciyi Variativna funkciyaPrimitki Redaguvati N 2394 Open Standards English Arhiv originalu za 27 lipnya 2020 Procitovano 22 travnya 2020 JTC1 SC22 WG21 The C Standards Committee 2 zhovtnya 2007 SC22 WG21 N2431 J16 07 0301 A name for the null pointer nullptr PDF JTC1 22 32 angl The C Standards Committee Arhiv originalu za 11 lyutogo 2012 Procitovano 4 zhovtnya 2010 angl Posilannya RedaguvatiQuestion 5 1 c faq com Arhiv originalu za 26 lyutogo 2013 Procitovano 2 kvitnya 2022 Question 5 13 c faq com Arhiv originalu za 18 serpnya 2011 Procitovano 2 kvitnya 2022 Otrimano z https uk wikipedia org w index php title NULL C amp oldid 38526712