Нарушение прав доступа при чтении по адресу c++
Происходит ошибка нарушения прав доступа при чтении. Если ввожу 1, то всё работает верно, при вводе 2 и больше получаю ошибку
#include <iostream>
int main()
{
setlocale(LC_ALL, "Russian");
int n;
std::cout << "Введите размерность массива: ";
std::cin >> n;
int **arr = new int*[n];
for (int i = 0; i < n; i++)
{
arr[i] = new int[n];
}
int pos[2] = { 0, 0 };
int vec[2] = { 1, 0};
const int down_vec[2] = { 1, 0 };
const int right_vec[2] = { 0, 1 };
const int upgor_vec[2] = { -1, 1 };
const int downgor_vec[2] = { 1, -1 };
for (int i = 0; i < n * n; i++)
{
arr[pos[0]][pos[1]] = i+1;
if (std::equal(std::begin(vec), std::end(vec), std::begin(down_vec)))
{
if (pos[0] == 0)
{
pos[0] = pos[0] - 1;
pos[1] = pos[1] + 1;
for (int k = 0; k < 2; k++)
{
vec[k] = upgor_vec[k];
}
}
else
{
pos[0] += 1;
pos[1] -= 1;
for (int k = 0; k < 2; k++)
{
vec[k] = downgor_vec[k];
}
}
}
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
std::cout << arr[i][j];
}
std::cout << "" << std::endl;
}
}