Зальцман М.
Компьютерные игры: как это делается
стр. 189

данных. Нередко попытка обращения к областям памяти находящимся за пределами массивов, вызывает общий сбой Windows - General Protection Fault (GPF). Например, если массив содержит только пять элементов, а программа попытается получить доступ к восьмому, вы увидите на экране сообщение о GPF. Чтобы застраховать себя от подобных ошибок, обратите внимание на следующую программу.

Это должен сделать каждый программист - создать шаблон для массивов. Не используйте массивы в стиле Си, если это не является абсолютно необходимым. Определение шаблона должно выглядеть примерно так:

template <class Entry> class Array {

private:

Entry *pEntry; int iSize;

Далее шаблон содержит внутренние компоненты для добавления (размещения) и удаления записей массива, а также компоненты для доступа к массиву, подобные приведенному ниже:

public:

// Обеспечивает доступ к записям массива...

Entry &operator [](const int ilndex) const {

Assert(ilndex >= 0 && ilndex < iSize); return pEntry[ilndex];

}

Функция Assert очень важна, так как она вызывает ошибку отладки, если значение выражения-аргумента Assert равно FALSE. Этот небольшой фрагмент программы спас нас от такого количества ошибок, что я просто не представляю, что бы мы без него делали. Наш макрос Assert выглядит примерно так:

// Режим отладки:

#if defined(_DEBUG)

extern BOOL MyAssertFunc(BOOL, int, char *};

#define NatBreakf) { _asm { int 3 } }

// Утверждает, что значение ехр - истина.

#define Assert(ехр) \

if (MyAssertFunc((int)(exp),_LINE_,_FILE_))    \

NatBreak();

// Режим без отладки:


Новости
Слух: На E3 2018 покажут Cyberpunk 2077
Крупное польское видеоигровое издание GRYOnline сообщило о том, что, согласно их собственным источникам в компании, CD Projekt Red готовит к E3 2018 новый трейлер Cyberpunk 2077.
Авторы Max Payne раскритиковали крупные игры
Глава по коммуникации студии Remedy Томас Пуха заявил, что в нынешних реалиях игрового рынка его команде пришлось реорганизовать производство.