Когда я пытаюсь использовать delete [] в динамически размещаемом отладчике массива bool выдает ошибку.
Это происходит только при удалении этого конкретного массива, после того, как я комментирую этот фрагмент кода, все в порядке.
for (int i = 0; i < tests; i++)
{
int *map=new int[n_of_cit[i]];
bool *check = new bool[n_of_cit[i]];
/// this is the array i have problem with
int curr;
for (int k = 0; k < n_of_cit[i]; k++)
{
map[k] = infinity;
check[k] = 0;
}
map[start[i]-1]=0;
while (true)
{
if (map[destination[i]-1]!=infinity)
{
answers[i] = map[curr - 1];
break;
}
for (int j = 0; j < n_of_cit[i]; j++)
{
if (map[j] != infinity && check[j] == false)
{
curr = j;
}
}
for (int j = curr; j < n_of_cit[i]; j++)
{
if (check[j] == 0 && map[j] < map[curr]) curr = j;
}
for (int k = 0; k < n_of_high[i]; k++)
{
if (from[i][k]-1 == curr)
{
if (map[curr]+cost[i][k] < map[to[i][k] - 1])
{
map[to[i][k] - 1] = map[curr]+cost[i][k];
}
}
else if (map[curr-1] + to[i][k] == curr)
{
if (cost[i][k] < map[from[i][k] - 1])
{
map[from[i][k] - 1] = map[curr] + cost[i][k];
}
}
}
check[curr - 1] = 1;
}
delete [] map;
delete [] check;
///thats where error shows
}
Ошибка: «ОБНАРУЖЕНА КОРРУПЦИЯ КАРТЫ: перед нормальным блоком (# 231) в 0x000F9A58. CRT обнаружил, что приложение записало в память до запуска буфера кучи». (визуальная студия 2017)
Я ищу возможность удаления этого массива, возможно, что я получаю неверный фрагмент памяти, но не знаю, где это может быть.