int arr[ 5 ] = { 0 };
int i = 8; // out of bounds
arr[ i ] = 8;
Я знаю, что могу просто проверить, нравится ли мне это, если (i <0 || i> 5) ....
Я также знаю о SEH в Visual Studio, но похоже, что это не рабочее решение.
__try { /* code */ }
__except(GetExceptionCode() == EXCEPTION_ARRAY_BOUNDS_EXCEEDED)
Это не работает. Как я вижу, SEH работает в таких ситуациях, как деление на 0, доступ к защищенным страницам ... Как я могу защитить свою программу от сбоев?