Распределение массива A смежно в памяти с i и len.Помните, что когда вы обращаетесь через массив, это похоже на использование указателей, и вы уходите от конца массива, сталкиваясь с другими вещами, которые вы там помещаете.
C по умолчанию не выполняет проверку границ,Вы, как программист, должны быть осторожны;взамен вы получаете преимущества в скорости и размере.
Обычно внешние инструменты, такие как lint, распознают проблемы с помощью статического анализа кода.Некоторые библиотеки, в зависимости от поставщика компилятора, добавят дополнительные отступы или защиту памяти, чтобы определять, когда вы вышли из конца.
Множество интересных, опасных и непереносимых вещей находятся в памяти в «случайных местах»«.Большая часть хранения выделений памяти кучи происходит в ячейках памяти до той, которую дает вам компилятор.
Общее правило: если вы не выделяли или не запрашивали его, не связывайтесь с ним.