Código:
/* La función lo que hace es que inserta un valor en un vector dinámico en una posición dada, desplazando los elementos que hay a su derecha
un lugar a la derecha. */
void vector::inserta (const int &t, unsigned pos){
if(tamf==taml){
int *v1;
tamf=tamf*2;
try{
if(!(v1=new int[tamf])) throw bad_alloc();
for(int i=0;i<taml;i++){
v1[i]=v[i];
}
delete []v;
}
catch (bad_alloc){
cout << "Error al crear v1." << endl;
}
v=v1;
v[taml]=t;
taml++;
}else if(taml<tamf){
for(int i=(taml-1);i>=pos;i--) v[i++]=v[i]; //Aquí es donde se para.
v[pos]=t;
taml++;
}
}
Gracias de antemano!
PD: Rectifico, la aplicación no termina, si no que se queda ahí como si fuese un bucle infinito.