ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++ (4-Е ИЗДАНИЕ) (часть 7) онлайн

Границы массива

В этой программе ввод данных пользователем организован в виде цикла. Здесь пользователь может ввести сколько угодно структур типа part, даже больше зна- чения MAX (равного здесь 100), представляющего собой размер массива.

Что случится, если пользователь введет более 100 интервалов? Что-то не- предвиденное, но почти определенно плохое. В C++ нет проверки границ масси- ва. Если программа поместит что-то за пределами массива, то компилятор и ис- полняемая программа протестовать не будут. Однако эти данные могут быть записаны поверх других данных или поверх самой программы. Это может по- служить причиной странных эффектов или даже полного краха системы.

Мораль всего этого такова, что программисту следует применять проверку границ массива. Если возникает возможность переполнения массива данными, то он должен иметь большие размеры или у него должна быть возможность пре- дупредить пользователя о возможном переполнении. Например, вы можете вста- вить этот код в начало цикла программы ENGLARAY:

 

if ( n >= MAX ) {

  cout << "\nМассив полон!!!";   break;

}

Таким образом вы сможете прервать цикл и предотвратить переполнение массива.

 

15