Folgende Konstellation...
Code: Alles auswählen
// ein Record mit integriertem Array
dbuf = record
tpos : integer;
ttim : TDateTime;
vval : array[1 .. 20] of real; // <= hier kann ich leider nicht cdcnt verwenden, da const erst nach type festgelegt
end;
// Größe von Messwerten und Ringbuffer
const
ctanz = 720; // Größe Ringbuffer Daten
cdcnt = 25; // Anzahl Messwerte
// Ringbuffer zuweisen
var
daten : array[0 .. ctanz - 1] of dbuf; // Ringbuffer Daten
...
for i := 1 to cdcnt do
for k := 0 to ctanz - 1 do
val := daten[k].vval[i]; // <= ergibt ungültige Daten für i > 20, aber keine Fehlermeldung
... gibt mir ungültige Werte zurück, wenn ich cdcnt erhöhe ohne das Array vval anzupassen. Sollte doch aber eine Fehlermeldung für Zugriff ausserhalb des Array zurückgeben, oder?
Disclaimer: In Basic hab ich cdcnt vor dem Array definiert, und damit das Array automatisch angepasst, geht leider in Pascal nicht, da type vor const vor val.