Dir ist schon klar das die Funktion nicht das Element aus der Liste zurückgibt, sondern nur eine Kopie davon? Wird die Funktion aufgerufen wenn die Liste keine Elemente enthält, wird auf jeden Fall eine Zugriffsverletzung auftreten. Ansonsten mit dem Debugger Schritt für Schritt ausführen.
So würde ich das lösen:
Delphi-Quellcode:
type
PDeveloper = ^TDeveloper;
function getDeveloperByIndex(
index: Cardinal): PDeveloper;
begin
current := first;
while (
index > 0)
and Assigned(current)
do
begin
current := current^.Next;
Dec(
index);
end;
if current <>
nil then
Result := @(current^.content)
else
Result :=
nil;
end;
Allerdings ist eine verkettete Liste für Zogriffe über einen Index wenig geeignet.