Никак, ты выделяешь статичную память для 1000 элементов типа "х". Если использовать сторонние библиотеки, это лишь дает вид, что такая операция делается в 1 строку. Чтобы потом сдвинуть последующие елементы назад, надо итерировать весь массив. Чтобы сделать его на 1 меньше, надо выделять новую инстанцию памяти под этот массив и копировать старые элементы в него.
Выбирая структуру данных - думай прежде как с ней придется работать, если она нужна тебе в динамичном варианте, то лучше используй vector.
std::vector<int> array;
array.erase(array.begin() + 400);
Хоть тут по сути и происходит тоже самое, что я описал выше. Но для этого есть соотвествующие методы в STL