Здравствуйте, Codealot, Вы писали:
C>Чувак, ты вообще в себе? Они совершенно примитивно накосячили с валидацией данных из своего конфига и словили выход за границу массива.
Ну вот ты и подставился, молодец...
Чувак, если у тебя с чтением проблемы — пользуйся хотя бы переводчиками, что не выглядеть случайным на этом сайте. ))
Там написано не про массив как элемент ЯП, а про "массив данных", где из контекста было понятно, что это разнородные данные — поля некоей сущности (объекта) в памяти.
Ошибка случилась из-за того, что объект в памяти, созданный интерпретатором, был "короче" на одно поле (всего 20 полей, а должно было быть 21).
C>Никаких "это они просто так ошибку обработали", про что ты пытался втирать.
А что тебе тут было не понятно?
The Content Interpreter expected only 20 values. Therefore, the attempt to access the 21st value produced an out-of-bounds
memory read beyond the end of the input data array and resulted in a system crash.
Я тебе и на дотнете точно так же могу всё уронить, если полезу за пределы памяти объекта, и никакой валидатор не спасёт, бгг...
Кароч, не можешь сам разобраться — лучше спрашивай. ))
============
Вдогонку.
Причём, в дотнете вокруг объекта обычно дофига выделенной и закомиченной под процесс памяти, т.е., чтобы нарваться на AV, необходимо обычно промазать очень далеко за память объекта.
Т.е. дотнет маскирует ошибки подобного рода.
В принципе, определённый элемент везения в произошедшем есть, что словили AV и таким образом оперативно обнаружили косяк. ))