Einzelnen Beitrag anzeigen

Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Floating Point Exception oder Access Violation, je nach Schreibweise

  Alt 12. Dez 2017, 18:04
Delphi-Version: 10 Seattle
Kann mir jemand folgendes Verhalten erklären?

uses System.Generics.Collections; Prozedur p1 wirft eine Access Violation, p2 hingegen eine Floating point invalid operation. Warum? Da ist doch kein Unterschied!

Delphi-Quellcode:
procedure p1();
type
   TFloat = type Single;
var
   values:   TArray<TFloat>;
begin
   values := [1.0, Single.Nan, 2.0];
   TArray.Sort<TFloat>(values);
end;

procedure p2();
type
   TFloat = Single;
var
   values:   TArray<TFloat>;
begin
   values := [1.0, Single.Nan, 2.0];
   TArray.Sort<TFloat>(values);
end;

Geändert von Der schöne Günther (12. Dez 2017 um 18:10 Uhr)
  Mit Zitat antworten Zitat