Es gibt eine ähnliche Frage here.Freier Speicher einer Struktur mit zwei Datenfeldern
Ich habe die folgende Struktur:
struct SimpleXY
{
double x;
double y;
};
struct SimpleEdge
{
SimpleXY first;
SimpleXY second;
}
struct SimpleEdgeList
{
uint num_edges;
SimpleEdge *SimpleEdges;
};
Was ist der richtige Weg, um den Speicher hält, durch SimpleEdgeList
zu befreien? Dies ist mein derzeitiger Ansatz, aber ich frage mich, ob ich das Datenfeld first
und second
manuell freigeben sollte oder nicht.
void Free(SimpleEdgeList *myList)
{
free(myList->SimpleEdges);
}
Dies ist eine Struktur C und ich bin für eine C wie Speicher frei suchen.
Soll das eine verkettete Listenimplementierung sein? Wenn das der Fall ist, sollten Sie 'struct SimpleEdgeList {int num_xy; SimpleEdgeList * weiter; }; ', und die' Free() 'Funktion wird ein wenig mehr beteiligt sein. –
Eine 'struct' mit einem Member mit dem gleichen Namen ist sehr verwirrend. Bitte tu das nicht. –
@Chris, es ist * nicht * eine Linkliste. Meine Struktur ist korrekt. Aber ich bearbeite den Mitgliedsnamen zur Klarstellung – Graviton