Fragen zur Verwaltung von Pointern, structs und Listen in C.

Gast #2305352
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren