I have an array of pointers:
Hotel *hotels[size];
  for (int i = 0; i < size; ++i)
    hotels[i] = new Hotel();
And I want to insert an object in this array after some object with name I know:
cin >> tmp_name;
for (int i = 0; i < size; i++) {
  if (hotels[i]->get_name() == tmp_name) {
    hotels[size] = new Hotel();
    size += 1;
    Hotel *tmp_hotel;
    tmp_hotel = hotels[i+1];
    hotels[i+1]->fillHotel();
    for (i = i + 2; i < size; i++) {
      hotels[i] = tmp_hotel;
      tmp_hotel = hotels[i+1];
    }
    break;
  }
}
What I do wrong?
UPD: My solution:
cin >> tmp_name;
for (int i = 0, j = 0; i < size; i++, j++) {
    new_hotels[j] = hotels[i];
    if (hotels[i]->get_name() == tmp_name) {
        new_hotels[j+1]->fillHotel();
        ++j;
        system("clear");
    }
}
hotels[size] = new Hotel();
++size;
for (int i = 0; i < size; i++) {
    hotels[i] = new_hotels[i];
}