int array[SIZE];
int array2[SIZE];
memcpy(array2, array, sizeof(int)*SIZE);random_array(array);memcpy стоит быть осторожным. Функция дает ожидаемый результат только для тривиальных типов.memcpy - это функция прямого копирования блоков памяти. Функция ничего не знает про инвариант объекта в памяти.std::copy, наоборот, умеет понимать инварианты объектов и производить копирование не нарушая инвариант источника. Дополнительно, эта функция не даст скомпилировать код если тип объектов не является копируемым.std::begin и std::end являются частью C++11. Если тебе компилятор пишет что не может найти их объявление, значит ты просишь его собирать код используя стандарт до C++11. 
x1,y1,x2,y2 не читается никак, равно как и непонятно, откуда у тебя берется угол (0-360). strcpy_s(s, strlen(s), source); - это прекрасный способ сделать ультраненадежный вызов "надежной" функции. #!/usr/bin/env python и # -*- coding: utf-8 -*- недостаточно. Еще нужно сам файл сохранить в кодировке UTF-8, желательно с BOM. Старайся в целом все .py файлы сохранять в кодировке UTF-8 с BOM. size_t использовать следует только тогда, когда значение отражает количественную или позиционную характеристику блока памяти. Для произвольных дискретных итераций следует использовать подходящий по размеру целочисленный тип, но не size_t, т.к. только в этом случае он не подходит по причине своей неоднозначности.size_t способен хранить размер теоретически максимально возможного объекта, включая и размер массива. При этом считается, что объект, размер которого не может содержаться в значении типа size_t, является плохо сформулированным.size_t, т.к. все вопросы размера и позиции блока памяти укладываются в размер регистра общего назначения - в 4 байта. Размер типа size_t на архитектуре x86 равен 32 битам. На архитектуре x64 тип size_t уже будет занимать положенные 8 байт. С мобильными архитектурами все точно так же. Об этом и говорит статус Implementation-definedв стандарте: размер количественной или позиционной характеристики блока памяти определяется деталями целевой архитектуры и всегда достаточно велик чтобы безопасно хранить свое значение.А если у вас пара десятков итераций в прыжке - то вам и int слишком большой, возьмите что-нибудь поменьше.
authAndAccess, что она должна делать по докментации?
Мусор - это любое недетерминированное значение. Нет инициализации - нет детерминированного значения. Переменная будет хранить мусор до первого присвоения детерминированного значения.