Удалить в массиве первую группу подряд идущих отрицательных элементов
Нашел начало первой идущей последовательности, конец, даже количество элементов этой последовательности, но как их удалить не понимаю. Пробовал через условие в цикле: if(i < beg || i >end) new_a[i] = a[i]. Получался какой-то бред числа вроде -8604603
void delNegativeNum(int*& a, int& n) {
int j = -1;
for (int i = 0; i < n - 1; i++) {
if (a[i] < 0 && a[i + 1] < 0) {
j = i;
}
if (j != -1) break;
}
int beg = j, count = 0;
while (a[j] < 0 and j < n)
{
count++;
j++;
}
int end = j - 1;
int new_size = n + 1 - end - beg;
int* new_a = new int[new_size];
}
}
Источник: Stack Overflow на русском