Dla i = 4
tab1[i+1] = tab[i];
jest zapisaniem wartości poza zakresem pamięci tablicy tab1, co prowadzi do UB ( Undefined Behavior )
Lepiej w takim przypadku skorzystać z zalet biblioteki standardowej i użyć do tego celu std::vector.
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> tabA { 1,2,3,4,5,6 };
vector<int> tabB {begin(tabA)+1,end(tabA)};
tabB.push_back(*begin(tabA));
for( const auto& element : tabA ) cout << element << ' ';
cout << endl;
for( const auto& element : tabB ) cout << element << ' ';
}