Много езици за програмиране, като C, никога не извършват автоматична проверка на границите за повишаване на скоростта. Това обаче оставя много грешки отделно по едно и препълвания на буфера неуловени. Много програмисти вярват, че тези езици жертват твърде много за бързото изпълнение.
Извършена ли е обвързаната проверка в масив?
Абстракт. Проверката, свързана с масиви, се отнася за определяне дали всички препратки към масиви в програмата са в рамките на техните декларирани диапазони. Тази проверка е от решаващо значение за проверка и валидиране на софтуера, тъй като абонаментните масиви извън техните декларирани размери могат да доведат до неочаквани резултати, дупки в сигурността или неуспехи.
Защо C няма проверка на границите?
Това се дължи на факта, че C++ не прави граници проверка. … Принципът на дизайна на C++ беше, че не трябва да бъде по-бавен от еквивалентния C код, а C не проверява границите на масива. Така че, ако се опитате да получите достъп до това извън границите на паметта, поведението на вашата програма е недефинирано, тъй като това е написано в стандарта C++.
Проверяват ли се индексите на C масив по време на изпълнение?
Истинският проблем е, че C и C++ реализации обикновено не проверяват границите (нито при компилиране, нито по време на изпълнение). На тях им е напълно позволено да го направят. Не обвинявайте езика за това.
Какво се случва, ако масивът излезе извън границите в C?
ArrayIndexOutOfBoundsException може да възникне, ако се осъществява достъп до масив извън границите. Ноняма такава функционалност в C и може да възникне недефинирано поведение, ако се осъществява достъп до масив извън границите. Програма, която демонстрира това в C, е дадена, както следва.