Ваш код имеет неопределенное поведение . Звонок на initgraph
int gdriver = IBM8514, gmode;
initgraph(&gdriver, &gmode, "");
должен передать указатель на графический режим, который вы хотите использовать. Эта страница описывает функцию и ее аргументы, а также о режиме, в котором она написана:
* graphmode - это целое число, которое задает начальный графический режим (если * graphdriver не равен DETECT; в этом случае устанавливается * graphmode
по initgraph с самым высоким разрешением, доступным для обнаруженных
Водитель). Вы можете присвоить * graphmode значение, используя константу
тип перечисления graphics_modes, который определен в graphics.h и
перечислены ниже.
graphdriver и graphmode должны быть установлены на допустимые значения из
Следующие таблицы, или вы получите непредсказуемые результаты. Исключение
является графическим драйвером = DETECT.
Но вы не установили режим, и, как сказано во втором абзаце, результат непредсказуем. Это может быть: работать так, как вы хотели, не работать, работать странно или жарить процессор.
Так что установите графический режим, который вы хотите использовать, скажем,
int gdriver = IBM8514, gmode = 0;
или любой другой режим, который вам нужно использовать. В качестве альтернативы вы можете указать системе определять для себя, в этом случае вы можете использовать
int gdriver = DETECT, gmode;