Функция преобразует массив так, чтобы числа во введенном диапазоне были первыми, а затем уже остальные, но код выдает какую то ошибку и я не могу понять в чем проблема, я пробовал запустить отдельно и без этой функции все работает, что я сделал не так, подскажите пожалуйста
void result(double* a, int n, int x, int y) {
double* b;
b = new double[n];
for (int i = 0; i < n; i++) {
b[i] = a[i];
}
int j = 0;
for (int i = 0; i < n; i++) {
if (b[i] >= x || b[i] <= y) {
a[j] = b[i];
j++;
}
}
for (int i = 0; i < n; i++) {
if (b[i] < x || b[i] > y) {
a[j] = b[i];
j++;
}
}
delete[]b;
}