Я хотел бы выделить массив и настроить его таким образом, чтобы страницы до и после этого были защищены блоком управления памятью, поэтому попытка выполнить над границами массива будет быть автоматически пойманным; а затем поймать его, чтобы обработать ошибку контролируемым образом.Настройка защищенного по границам массива
Я сомневаюсь, что будет переносное решение, но какой лучший метод для платформы, использующий Microsoft C на Windows и GCC на Linux соответственно?
Там же [функция Windows API, который фактически используется, чтобы сделать что-то подобное] (http://blogs.msdn.com/b/oldnewthing/archive/2012/02/10/10266256. aspx), хотя поведение было удалено в Windows Vista, потому что люди сообщали об этом как уязвимость безопасности, даже если это не так. –
Блок управления памятью работает в гранулярности страниц, и вы можете выделять массивы, которые не заканчиваются на границах страниц - в этом случае недопустимый доступ к памяти между концом массива и границей страницы не будет обнаружен. – smichak
А, похоже, механизм, используемый этой функцией, все еще доступен? Это похоже на решение для Windows. - И да, я полагаю, что мне нужно будет выделить соответствующие массивы на границах страниц. – rwallace