Delphi-Quellcode:
type Player_ = record
ID : integer;
Name : string;
end;
var Player : array of player_;
function DoGetSpeakers : pchar;
{...}
result := pchar(player[u].Name);
Ich vermute die Fehlerursache ist bei der Verwendung von PChar zu suchen.
Dynamische Arrays können unter Umständen im Speicher verschoben werden, insbesondere wenn sich die Anzahl der Elemente vergrößert.
Den Rückgabewert unbedingt auf String ändern. Prüfen, wo es noch ähnlichen Schwachstellen gibt.
Zugriffsverletzungen treten leider nicht immer dort auf, wo diese verursacht werden.