Почему функция работает некорректно?
Функция должна удалять строки с четной суммой. Когда находится подходящая строка, на ее место становится соседняя и соответственно все остальные двигаются налево, а верхняя граница понижается. Где я ошибся? Фрагмент кода:
#define x 4
#define y 2
int main()
{
int new_len = x;
int ** a = (int**)calloc(x, sizeof(int* ));
for (int i = 0; i < x; i++)
a[i] = (int*)calloc(y, sizeof(int));
input_matrix(a, x, y);
printf("Before: \n");
print_matrix(a, x, y);
for (int j = 0; j < x; j++)
for (int i = 0; i < x; i++)
if (sum_row(a[i], y) % 2 == 0)
{
delete_row(a, i, new_len);
new_len--;
}
printf("\nAfter:\n");
print_matrix(a, new_len, y);
....
void delete_row(int** a, int i, int new_len){
for (i ; i < new_len-1; i++)
for (int j = 0; j < y; j++)
*(*(a+i)+j) = *(*(a+i)+j+sizeof(int* ));
}

