Zitat von
Kedariodakon:
da scheinbar die Leute mein Problem falsch interpretieren, so wie du gerade eben...
Bitte nochmal lesen, was ich schrob:
Zitat:
Delphi-Quellcode:
]function sumArray(const Data: TDataArray; low, high: Integer): Cardinal;
var
i: Cardinal;
begin
Result := 0;
for i := low to high do
inc(Result, Data[i]);
end;
SumArray kriegt das Array und die Werte von wo bis wo es zusammenzählen soll, es wird also ein Ausschnitt aus dem Array zusammengezählt.
Es wird nix Speicher neu erzeugt und es besteht keine Notwendigkeit, das Array zu zerpflücken. Und ob ich nun sumArray(myarray[lowerbound..upperbound]) aufrufe, was ja nicht geht, oder sumArray(myArray, lowerBound, upperBound), ist ja wohl egal.
Ansosnten könntest du auch mit ein wenig rumgecaste und Pointern zum Ziel kommen, aber dann müsstest du immer noch die obere Grenze übergeben:
Delphi-Quellcode:
function sumArray(someArray: TDateArray; maxCount: Integer): Integer;
var
i: Integer;
begin
Result := 0;
for i := 0 to maxCount - 1 do
Result := Result + someArray[i];
end;
function work(data: TDateArray; lower, upper: Integer): Integer;
begin
Result := sumArray(TDateArray(data[lower]), upper - lower);
end;
Vorsischt: Unjetestet und from scratch! Syntaktische Fähler nit ausjeschlossen Evtl muss evtl auch PDataArray(@data[lower])^ heißen, ich bin grad zu faul den Compiler dazu zu befragen, was sein Parser sehen möchte.
Edit: Da habe ich mich doch tatsächlich beim quotteln der Delphi-Tags entledigt...
Zitat von
Neutral General:
Ich glaube tommie-lie meint die ganzen Leerzeichen überall in deinem Code
Nein, eben das Fehlen solchiger und das Vorhandensein von Tab-Characters, sowie die eigensinnige Verwendung von Linebreaks