Buffer overflow в delphi - это нормально?

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by desTiny, 27 Feb 2008.

  1. desTiny

    desTiny Elder - Старейшина

    Joined:
    4 Feb 2007
    Messages:
    1,006
    Likes Received:
    444
    Reputations:
    94
    Заметил тут:
    Code:
    {$APPTYPE CONSOLE}
    var
      a: array[1..100] of integer;
      b: array[1..10] of integer;
      i: integer;
    begin
      i := 0;
      b[i] := 10;
      write(a[100]);
      readln;
    end.
    
    И вот это компилится и работает! То есть a[100] = 10.
    Иначе говоря, по умолчанию стоит {$R-}. Значит, почти всегда buffer overflow актуален и под делфой...

    Или я что-то недоперемудрил?
     
  2. iddqd

    iddqd Banned

    Joined:
    19 Dec 2007
    Messages:
    637
    Likes Received:
    519
    Reputations:
    19
    переполнение буфера может быть где угодно, там где выделяется память для переменыых, массивов и т.п.
    и это всегда плохо...
     
  3. ~Lexx~

    ~Lexx~ Elder - Старейшина

    Joined:
    30 Sep 2006
    Messages:
    195
    Likes Received:
    28
    Reputations:
    0
    А как ты думал для чего нуно обнулять массивы сразу после создания. Да и не только массивы - как вообще можно обращаться к элементу, если ты его не задал явно? а потом удивляться)))