Я думаю, что правильный способ сделать то, что вы хотите:
memcpy(array, array + 2, 2*sizeof(int));
Это потому, что во втором аргументе указателя memcpy выполняется арифметика, и все, что добавляется в указатель «массива», считается кратным целому размеру. Таким образом, в данном случае выражение «массив + 2» означает «целочисленный указатель« массив »плюс двукратный размер целого числа».