Bir çox proqramlaşdırma dilləri, məsələn, C, sürəti artırmaq üçün heç vaxt avtomatik sərhəd yoxlanışı həyata keçirmir. Bununla belə, bu, bir çox səhvləri və bufer daşqınlarını tutulmamış qoyur. Bir çox proqramçılar bu dillərin sürətli icra üçün çox şey qurban verdiyinə inanırlar.
Bağlı yoxlama massivdə aparılır?
Abstrakt. Massivlə bağlı yoxlama proqramdakı bütün massiv istinadlarının elan edilmiş diapazonlar daxilində olub-olmadığını müəyyən etmək üçün nəzərdə tutulur. Bu yoxlama proqram təminatının yoxlanılması və təsdiqlənməsi üçün vacibdir, çünki elan edilmiş ölçülərdən kənara abunə olan massivlər gözlənilməz nəticələr, təhlükəsizlik boşluqları və ya uğursuzluqlar yarada bilər.
Niyə C-də sərhəd yoxlanışı yoxdur?
Bu onunla bağlıdır ki, C++ limitləri yoxlayır. … C++ dizayn prinsipi ondan ibarət idi ki, o, ekvivalent C kodundan yavaş olmamalıdır və C massiv sərhədlərinin yoxlanılması ilə məşğul olmur. Beləliklə, əgər siz bu yaddaşdan kənara çıxmağa cəhd etsəniz, proqramınızın davranışı qeyri-müəyyəndir, çünki bu, C++ standartında yazılmışdır.
C massivi indeksləri icra zamanı yoxlanılır?
Əsl problem ondan ibarətdir ki, C və C++ tətbiqləri adətən sərhədləri yoxlamır (nə tərtib zamanı, nə də icra zamanı). Onlara bunu etməyə tam icazə verilir. Bunun üçün dili günahlandırmayın.
Massiv C-də hüdudlardan kənara çıxarsa nə baş verir?
ArrayIndexOutOfBoundsException əgər massivə hüdudlardan kənar daxil olarsa baş verə bilər. AmmaC-də belə bir funksionallıq yoxdur və əgər massivə hüdudlardan kənar daxil olarsa, qeyri-müəyyən davranış baş verə bilər. Bunu C dilində nümayiş etdirən proqram aşağıdakı kimi verilir.