Gast
#2305352
Moin! Ich programmiere im Moment ein SPH- (smoothed particle hydrodynamics) Programm. Dabei wird eine Flüssigkeit durch einzelne Partikel simuliert. Die Partikel habe ich als struct mit Geschwindigkeit, Position, usw. als Parameter programmiert. Jedes Partikel weißt zudem noch auf das nächste Partikel (single linked list). Ich habe also eine große Liste, in der alle Partikel drin hängen. Für die Berechnung der Kräfte auf ein bestimmtes Partikel werden nur Partikel herangezogen, die sich in räumlicher Nähe zu diesem Partikel befinden. Hier stehe ich jetzt auf dem Schlauch: Ich übergebe der Funktion "findeNachbarn" einen Pointer auf die große Liste und einen Pointer auf das Partikel zudem die Nachbarn gefunden werden sollen. Die Funktion soll nun eine neue Liste erstellen die nur noch die Nachbarn enthält, dabei aber die "große Liste" unverändert lässt. Muss ich für die Nachbarliste neuen Speicherplatz allozieren, oder kann ich weiter mit Pointern arbeiten? Was ist am besten? Ich denke das Problem ist, das die Partikel sozusagen noch für die eigene Verwaltung zuständig sind. Wäre es vielleicht schlauer eine "Überstruktur" zu implementieren, die die Pointer auf die Partikel verwaltet? Wie würdet ihr das lösen? MfG, Johannes