Pascal versteckt halt den pointer Zugriff, was dann zu lustigen Seiteneffekten führen kann, wie das z.b. das folgende
Code: Alles auswählen
Move(str1[1], str2[1], str1.length);
Pascal versteckt halt den pointer Zugriff, was dann zu lustigen Seiteneffekten führen kann, wie das z.b. das folgende
Code: Alles auswählen
Move(str1[1], str2[1], str1.length);
Genau wie bei folgendem Beispiel, früher hatte bei solchen Sachen immer @xxx[0] zugegriffen anstelle mit einem Pxxx(xxx).Einen range check error für leere strings verursachen kann, obwohl wenn length 0 ist der Wert hinter Str[1] nie gelesen bzw geschrieben wird
Code: Alles auswählen
const
vertices: array of TVector2f = (
(-0.90, -0.90), (0.85, -0.90), (-0.90, 0.85),
(0.90, -0.85), (0.90, 0.90), (-0.85, 0.90));
begin
SetLength(vertices, 0);
// Alt
glNamedBufferStorage(Buffers[Buffer_IDs_ArrayBuffer], Length(vertices) * SizeOf(vertices), @vertices[0], 0);
//Neu
glNamedBufferStorage(Buffers[Buffer_IDs_ArrayBuffer], Length(vertices) * SizeOf(vertices), PVector2f(vertices), 0);