Gast
#2889509
Hallo, weis nicht ob das hier oder im PC Forum besser aufgehoben ist. Aber eigentlich eher eine Frage zu C, also => gcc. Ich schreibe gerade ein Modul dass eine bestimmte Datenstruktur und verschiedene Operationen auf diese anbietet. Organisiert sind die Daten in einer Struktur. Durch eine Init Funktion sollen mehrere "Instanzen" dieser Struktur angelegt werden können. Die Schnittstellen des Moduls werden durch das Einbinden der Header Datei dem Programm bekannt gemacht. Der "Benutzer" soll beim Aufrufen einer Funktion immer die Instanz der Datenstruktur übergeben auf die operiert wird. Am liebsten wär mir das über ein Handle. Wenn der Benutzer nämlich anstelle eines Handles die struct an sich sieht (und einen Zeiger auf diese übergibt) könnte er ohne Umweg über die Schnittstellen direkt an den Membern der struct rummanipulieren. Aber bei einem Zugriff per Handle muss ich ja intern in meinem Modul irgendwie eine Liste führen, in der die Strukturen abgelegt sind. Da setzts grad aus bei mir. Soll ich mein struct um zwei Member erweitern um eine doppelt verkettete Liste zu verwalten? Aber das geht ja wieder mit Overhead für die Listenverwaltung einher. Denkbar wäre noch ein Array mit Zeigern auf die structs. Aber ich weiß nicht wie leicht oder schwer es ist, ein Array dynamisch zu vergrößern oder zu verkleinern. Wärend ich das schreibe merke ich übrigens, dass mein Vorhaben ein Paradebeispiel für OOP wäre... Wisst ihr eine Lösung, das möglichst elegant hinzukriegen? Zur Not muss ich die struct eben doch nach aussen hin bekannt geben, aber das halte ich wie gesagt für unschön.