Linked list
-
Okey. Hab das korrigiert.
Aber schaut euch bitte mal den folgenden Code an:bool task_list::delete_by_id(task_node *n, int id_) { task_node *prev, *curr; int i = 0; if(n = NULL) { return false; } else { if(id_ > n->get_id()) { return false; } else { prev = NULL; curr = n; i = 1; while(i < id_) { prev = curr; curr = *curr->get_next_node(); i = i+1; } if(prev=NULL) { n = *curr->get_next_node(); free(curr); } else { *prev->get_next_node() = *curr->get_next_node(); free(curr); } } } return true; }Mein Compiler sagt: Funktion akzeptiert keine 1 Argumente
What the... Was ist falsch, wieso und wie wäre es richtig?
-
Über welche Funktion beschwert er sich denn?
(btw, was gibt eigentlich die get_next_node()-Methode zurück? So, wie du die hier verwendest, sieht es ein wenig seltsam aus.)
-
MaxC++ schrieb:
Mein Compiler sagt: Funktion akzeptiert keine 1 Argumente
What the... Was ist falsch, wieso und wie wäre es richtig?
Der sagt bestimmt auch, in welcher Zeile der Fehler ist ...
Und warum benutzt du free in C++?
-
Ahh..danke, wegen dem Hinweis mit der get_next_node

Hab den Fehler dort gefunden
..wegen dem free: Darf / Soll man das nicht verwenden?
-
MarcC++ schrieb:
Ahh..danke, wegen dem Hinweis mit der get_next_node

Hab den Fehler dort gefunden
..wegen dem free: Darf / Soll man das nicht verwenden?
Man verwendet normalerweise 'delete' in C++. Meistens ist RAII jedoch noch besser.
-
Sagen wir es so: Es ist nicht üblich

malloc()/free() stammt noch aus C und hat den großen Nachteil, daß es sich nicht um Konstruktoren bzw. Destruktoren der beteiligten C++ Objekte kümmert. Deshwegen verwendet man in C++ lieber new und delete für die Speicherverwaltung.
-
icarus2 schrieb:
MarcC++ schrieb:
Ahh..danke, wegen dem Hinweis mit der get_next_node

Hab den Fehler dort gefunden
..wegen dem free: Darf / Soll man das nicht verwenden?
Man verwendet normalerweise 'delete' in C++. Meistens ist RAII jedoch noch besser.
RAII? komisches buzzword

-
_-- schrieb:
icarus2 schrieb:
MarcC++ schrieb:
Ahh..danke, wegen dem Hinweis mit der get_next_node

Hab den Fehler dort gefunden
..wegen dem free: Darf / Soll man das nicht verwenden?
Man verwendet normalerweise 'delete' in C++. Meistens ist RAII jedoch noch besser.
RAII? komisches buzzword

Resource Acquisition Is Initialization. RAII ist dafür die Standardabkürzung

-
_-- schrieb:
RAII? komisches buzzword

SFINAE

-
MaxC++ schrieb:
Okey. Hab das korrigiert.
Aber schaut euch bitte mal den folgenden Code an:// dein codeVielleicht solltest du dir angewöhnen das VERGLEICHE AUF GLEICHHEIT mit == passieren und ZUWEISUNGEN mit =. Das passiert dir DREI mal, und das korrigierte Beispiel hast du (so siehts für mich aus) einfach Übernommen ohne es mit dem von dir geposteten zu vergleichen - dann hätte dir das Auffallen können.