2024 Forfatter: Elizabeth Oswald | [email protected]. Sidst ændret: 2024-01-13 00:05
Mange programmeringssprog, såsom C, udfør aldrig automatisk grænsekontrol for at øge hastigheden. Dette efterlader dog mange off-by-one fejl og bufferoverløb uopfanget. Mange programmører mener, at disse sprog ofrer for meget for hurtig udførelse.
Er bundet kontrol udført i array?
Abstrakt. Array bundet kontrol henviser til at bestemme, om alle array-referencer i et program er inden for deres erklærede områder. Denne kontrol er afgørende for softwarebekræftelse og -validering, fordi abonnerende arrays ud over deres deklarerede størrelser kan give uventede resultater, sikkerhedshuller eller fejl.
Hvorfor har C ikke grænsekontrol?
Dette skyldes, at C++ ikke kontrollerer grænser. … C++-designprincippet var, at det ikke skulle være langsommere end den tilsvarende C-kode, og C foretager ikke kontrol af array-grænser. Så hvis du forsøger at få adgang til denne out of bounds hukommelse, er opførselen af dit program udefineret, da dette er skrevet i C++ standarden.
Er C-array-indekser tjekket under kørsel?
Det virkelige problem er, at C og C++ implementeringer typisk ikke kontrollerer grænser (hverken ved kompilering eller kørsel). Det har de fuldt ud lov til. Giv ikke sproget skylden for det.
Hvad sker der, hvis et array går ud af grænserne i C?
ArrayIndexOutOfBoundsException kan forekomme, hvis der tilgås et array uden for grænserne. Mender er ingen sådan funktionalitet i C, og udefineret adfærd kan forekomme, hvis der tilgås et array uden for grænserne. Et program, der demonstrerer dette i C, er givet som følger.