Hola a todos, estoy iniciandome en el bajo nivel, y la primera en toda la frente.. xD, resulta que haciendo ejercicios, he visto uno que consiste en recorrer mediante punteros un vector de el ultimo lugar y desde el primero hasta que los dos punteros se junten y si se necesitan ordenar, se intercambien los valores, llevo buen rato dandole vueltas, y la mejor solucion a la que he llegado con apuntes que he mirado mil y una veces es la siguiente funcion:
void Ordenar(int *vector,int nElementos,bool ascendente)
{
int *vectorMax=(vector+nElementos-1);
while(vector!=vectorMax)
{
if(vector>vectorMax)
{
int aux=*vector;
*vector=*vectorMax;
*vectorMax=aux;
}
vector++;
vectorMax--;
}
}
Mi problema es que o el programa se me cierra, o me da una excepcion y no comprendo por que si no deberia salirse del vector ya que al juntarse los dos punteros tendrian la misma direccion de memoria.
Me esta dando muchos dolores de cabeza asi que les agradeceria que me ayudaran jejej.
Muchas gracias y un saludo!