Sie Foo * foo
in vielen Fällen verwenden:
1 - wenn der zurückgegebene Wert ein Array vom Typ Foo
2 - Wenn die Funktion einige Datenstrukturen manipuliert (insbesondere wenn Sie mit einem funktionalen Paradigma arbeiten, bei dem das einzige Ergebnis einer Funktion der zurückgegebene Wert ist) Beispiel:
List * deleteListNode(int nbr, List * src) {
Node * tmp = getElementPointer(nbr, src);
tmp->prev->next = tmp->next;
tmp->next->prev = tmp->prev;
return src;
}
Diese Funktion nimmt als Argumente die Nummer eines Elements in einer Liste und einer Liste und gibt nach dem Löschen des gewünschten Elements einen Zeiger auf dasselbe Listentoken als Argument zurück, so dass die Funktion nur Zeiger bearbeitet, wie Sie wissen sind 32-Bit-Werte (oder vielleicht 64 Bits auf 64-Bit-Systemen).
3 - wenn die Schaffung des zurückgegebenen Objekts verbraucht Ressourcen, so dass Sie einen Zeiger auf das vorhandene Objekt zurückkehren würde, vor allem in Ex-Erstellungsfunktionen: List * createList
, Tree * createTree
... weil Sie innerhalb der Funktion der Datenstruktur Erstellen Sie dazu es ist in der Erinnerung vorhanden alles, was Sie haben müssen, ist die Adresse
dieses muss ein dupe sein ... – rmeador