Ver Mensaje Individual
  #3  
Antiguo 23-06-2006
Bauhaus1975 Bauhaus1975 is offline
Miembro
 
Registrado: may 2005
Ubicación: Málaga
Posts: 135
Reputación: 22
Bauhaus1975 Va por buen camino
Hola y muchísimas gracias por tu respuesta.
En efecto tenía que ver con la optimización del compilador de Delphi. Motivado porque había un error (de funcionamiento) en el código, de tal forma que con el error la ejecución para la variable AuxAnt era nula y las líneas donde aparecía no las ejecutaba:

Código Delphi [-]
procedure TForm1.insertarOrdenado(Vector:TC;var Lista:TC);
// Insertamos el item Vector en la Lista de manera ordenada
// La ordenación es descendente (mayor valor al principio)
var
        Aux : TC;  // Puntero de avance principal
        AuxAnt : TC; // Puntero de avance secundario (un elemento por detrás de 'Aux')
        Pivote : integer;
begin
 Pivote := Vector.Valor;
        // Si la lista está vacía inserta el item directamente
 if (Lista = nil) then
                begin
  Lista := Vector;
        end
 else
         begin
                New(Aux);
                New(AuxAnt);
         Aux := Lista;
                AuxAnt := Lista;
                // Recorremos la lista de punteros hasta encontrar el sitio
         while ((Aux <> nil) and (AuxAnt <> nil) and (Pivote < Aux.Valor)) do
                        begin
                        AuxAnt := Aux; // Esta linea no se ejecuta
          Aux := Aux.Sgte;
         end;
         // Aquí se inserta el elemento
                AuxAnt.Sgte := Vector; // Ahora SI SE EJECUTA
                // Antes había: AuxAnt := Vector; (---> ERROR)
                Vector.Sgte := Aux;
        end;
end;

Lo dicho, muchas gracias y un saludo porque ahora funciona!
Responder Con Cita