Ganz so einfach kannst Du dir das nicht machen!
Die Funktion kann gar nicht wissen, dass das Objekt in einem Array ist, denn es ist ja nur deshalb in einem normalen Array, weil die Objekte des Arrays in Speicher nebeneinander angelegt wurden. Das weiss allerdings nur das Hauptprogramm oder ähnliches....nicht das einzelne Objekt.
Du musst das halt so lösen, dass du zum einen beim Erstellen der Objekte im Array jedem Objekt noch eine ID-Variable hinzufügst. Eine Übergabe des Arrays beim Funktionsaufruf käme da auch noch in Frage aber ....
(imo):
Jedenfalls würde ich Dir dazu sagen, dass das Projekt einfach falsch geplant ist, wenn du unteren Hierachien den Zugriff auf Arrays in viel höheren gewähren willst.
Nicht alles was man mit Zeigern machen kann sollte dann auch damit gemacht werden!