supongamos que vec[8] = {1,2,3,4,5,6,7,8}, dim será 8
tu código hará
i = 0; vec[0]=1; 8-0 = 8; vec[8]
listo en el primer ciclo tienes error... debe ser dim-i-1
ahora asumiendo ese cambio
i = 0; vec[0]=1; 8-0-1 = 7; vec[7]=8
vec = {8,2,3,4,5,6,7,8}
i = 1; vec[1]=2; 8-1-1 = 6; vec[6]=7
vec = {8,7,3,4,5,6,7,8}
ya deberías ver el error en tu código... siempre es bueno repasar esos códigos a mano
puedes hacer
for(unsigned i=0; i<dim/2; ++i){
aux = vec[i];
vec[i]=vec[dim-i-1];
vec[dim-i-1] = aux;
}
en este caso será
i = 0; vec[0]=1; 8-0-1 = 7; vec[7]=8
vec = {8,2,3,4,5,6,7,1}
i = 1; vec[1]=2; 8-1-1 = 6; vec[6]=7
vec = {8,7,3,4,5,6,2,1}
i = 2; vec[2]=3; 8-2-1 = 5; vec[5]=6
vec = {8,7,6,4,5,3,2,1}
i = 3; vec[3]=4; 8-3-1 = 4; vec[4]=5
vec = {8,7,6,5,4,3,2,1}
aquí termina (porque i es 4, que no es menor que 8/2)