Как вы защищаете свои приложения от переполнения буфера? - C#

Узнай цену своей работы

Формулировка задачи:

Как вы защищаете свои приложения от переполнения буфера? Нужно ли для этого усложнять код?

Решение задачи: «Как вы защищаете свои приложения от переполнения буфера?»

textual
Листинг программы
/// <summary>
/// Безмятежный массив, которому пофиг на выход за границы.
/// </summary>
// TODO: Реализовать IEnumerable<T>, ICollection<T> и тд
public class SerenityArray<T> where T: class
{
    struct Errno
    {
        public T LastValue { set; get; }
        public int LastIndex { set; get; }
    }
    
    private T[] _Data;
    public Errno LastIndexError { set; get; }
    public int Capacity { private set; get; }
    
    public T this[int index] {
        set {
            if (index < 0 || index >= Capacity) {
                LastIndexError = new Errno { LastValue = value, LastIndex = index };
                return;
            }
            _Data[index] = value;
        }
        get {
            if (index < 0 || index >= Capacity) {
                LastIndexError = new Errno { LastValue = value, LastIndex = index };
                // Будьте внимательны! Если забыть проверить LastIndexError
                // в вызывающем коде это может привести к трудноуловимым ошибкам!
                return null;
            }
            return _Data[index];
        }
    }
    
    public SerenityArray<T>(int capacity) {
        // TODO: Проверка параметра capacity
        _Data = new T[capacity];
        Capacity = capacity;
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4 из 5
Похожие ответы