Поддерживать
www.wikidata.ru-ru.nina.az
Nul terminirovannaya stroka ili C stroka ot nazvaniya yazyka Si ili ASCIIZ stroka sposob predstavleniya strok v yazykah programmirovaniya pri kotorom vmesto vvedeniya specialnogo strokovogo tipa ispolzuetsya massiv simvolov a koncom stroki schitaetsya pervyj vstretivshijsya specialnyj nul simvol NUL iz koda ASCII so znacheniem 0 OpisanieNaprimer v strokovom bufere oblasti pamyati vydelennoj dlya hraneniya stroki razmerom 11 bajt nul terminirovannaya stroka STROKA v kodirovke Windows 1251 mozhet predstavlyatsya sleduyushim obrazom S T R O K A NUL F NUL 40xD1 0xD2 0xD0 0xCE 0xCA 0xC0 0x00 0x46 0x25 0x00 0x34 V dannom primere predstavlena oblast pamyati iz 11 bajt hotya na samom dele stroka zanimaet vsego 7 Simvoly posle nul simvola 8 11 bajty nazyvayutsya musorom eto dannye kotorye mogli ostatsya v bufere ot predydushih strok ili ot drugih ispolzovanij pamyati Sredi nih takzhe mogut nahoditsya nulevye simvoly Pri ispolzovanii odnobajtnyh kodirovok ASCII obyom pamyati trebuemyj dlya predstavleniya stroki iz N simvolov raven N 1 bajt V tom sluchae kogda dlya kodirovaniya simvolov primenyaetsya Yunikod dlina stroki zavisit ot ispolzuemogo predstavleniya Yunikoda naprimer 2N 2 bajta dlya UCS 2 Takie stroki yavlyayutsya standartom v Si i nekotoryh drugih yazykah programmirovaniya Poskolku oni ispolzuyutsya dlya peredachi strokovyh argumentov v standartnye funkcii vo mnogih operacionnyh sistemah operacii dlya raboty s nul terminirovannymi strokami poyavilis v Paskale i drugih yazykah Dlya ssylki na nul terminirovannuyu stroku primenyaetsya ukazatel na pervyj eyo simvol Eto prostoj bystryj i gibkij podhod no chrevatyj oshibkami Programmist postoyanno dolzhen sledit za svoim kodom a imenno byt uverennym chto ne sluchayutsya perepolneniya bufera akkuratno provodit upravlenie pamyatyu vydelyaemoj pod stroki sledit za korrektnoj nul terminaciej strok pri ispolzovanii funkcij kotorye eyo ne garantiruyut naprimer strncpy v redkih sluchayah kogda razmer stroki mozhet byt ochen velik sledit chto ne proishodit perepolnenie celogo pri podschyote dliny i prochih svyazannyh s dlinoj vychisleniyah Krome togo nekotorye operacii so strokami naprimer konkatenaciya dlya nul terminirovannyh strok vypolnyayutsya medlennee chem dlya drugih tipov strok Sravnenie s alternativamiAlternativoj nul terminirovannym strokam yavlyayutsya sposoby prinyatye v Paskale i sovremennyh OOP yazykah V Paskale stroka nachinaetsya s pervogo elementa massiva a v nulevom elemente hranitsya dlina stroki V etom sluchae ne trebuetsya specialnogo terminatora dlya oboznacheniya konca stroki S drugoj storony zdes na dlinu stroki nakladyvaetsya ogranichenie svyazannoe s vmestimostyu nulevogo elementa massiva to est v sluchae s odnobajtovymi elementami dlina stroki ne mozhet prevyshat 255 simvolov Nul terminirovannye stroki takomu ogranicheniyu ne podverzheny i teoreticheski mogut hranit stroki lyuboj dliny V obektno orientirovannyh yazykah primenyaetsya hranenie zapisi s dlinoj stroki i ssylkoj ili ukazatelem na massiv simvolov Eti sposoby ne podverzheny nedostatku nul terminirovannyh strok oni mogut hranit v sebe nul simvoly bez iskazhenij i specialnogo kodirovaniya V ryade interfejsov primenyayutsya dvazhdy nul terminirovannye stroki priznakom zaversheniya kotoryh yavlyaetsya dva posledovatelnyh nul terminatora V yazyke SiDlya raboty s nul terminirovannymi strokami v yazyke programmirovaniya Si ispolzuetsya ryad funkcij strcpy kopirovanie strok vychislenie dliny stroki poisk simvola v stroke strdup dublirovanie strok poisk podstroki strtok razdelenie stroki cherez razdeliteli na podstroki poisk pervogo vhozhdeniya v stroku odnogo iz simvolov drugoj stroki V yazyke assembleraV nekotoryh raznovidnostyah yazyka assemblera dlya opredeleniya NUL terminirovannyh strok ispolzuetsya specialnaya direktiva Tak v GNU Assembler e dlya etogo est direktiva asciz Sm takzheStrokovyj tipPrimechaniya neopr Data obrasheniya 17 sentyabrya 2016 Arhivirovano iz originala 25 sentyabrya 2016 goda The Most Expensive One byte Mistake ACM Queue neopr Data obrasheniya 17 sentyabrya 2016 19 sentyabrya 2016 goda What is the format of a double null terminated string with no strings ot 13 fevralya 2019 na Wayback Machine MSDN 2009 Ispolzovanie GNU assemblera as Assemblernye direktivy neopr Data obrasheniya 17 sentyabrya 2016 17 sentyabrya 2016 goda Arhivirovannaya kopiya neopr Data obrasheniya 17 sentyabrya 2016 17 sentyabrya 2016 goda LiteraturaPoul Henning Kamp The Most Expensive One byte Mistake Did Ken Dennis and Brian choose wrong with NUL terminated text strings ot 19 sentyabrya 2016 na Wayback Machine ACM Queue Volume 9 issue 7 July 25 2011 angl rus Back to Basics by Joel Spolsky ot 5 sentyabrya 2016 na Wayback Machine December 11 2001 angl Ssylkihttp c2 com cgi wiki StringWithoutLength ot 19 iyulya 2016 na Wayback Machine http c2 com cgi wiki NonNullTerminatedString ot 20 sentyabrya 2016 na Wayback Machine
Вершина