Thread Merkwürdiges Verhalten von "split()"
(20 answers)
Opened by hlubenow at 2017-07-29 19:59 Quote Damit wirst du auch wohl kaum angeben können... Daran verstehe ich so einiges nicht. 1. Listen haben normalerweise eine Liste und dann ListNodes als Elemente. Dann kannst du dir die beiden Sentinels sparen. 2. Sehr verwirrende typedefs. "string" und "stringpointer" sind beide dasselbe wie char*. Lass die typedefs lieber weg. 3. Das abweichende Verhalten für strings in der Liste ist merkwürdig (strings werden kopiert, die anderen Typen aber nicht?) 4. malloc+realloc für das getNodeDataAsString? würde man nicht eher einen Buffer von außen dazugeben? Ansonsten nur malloc, gleich mit der richtigen Größe 5. Das split free't den Eingabestring?! 6. Überhaupt linked lists - warum, was haben die für einen Vorteil, außer dass sie langsam sind und so die CPU bzw. den Cache schön beschäftigen? Zumal du auch ein "push" benutzt, das erst noch ganz die Liste durchlaufen muss - also du nutzt die langsamst mögliche Operation auf deiner Liste in einer Schleife! 7. in main: string a = malloc(100); strcpy(a, "The black cat climbed the green tree"); - warum würde man das so tun wollen, warum nicht direkt den string verwenden? Ach ja, geht ja nicht, weil split nur mit ge"malloc"ten Strings funktioniert! 8. list=initList(); list=was_anderes; scheint mit ein Speicherleck zu sein! Naja, ist etwas ot hier, aber ich hab ja angefangen ;-) Last edited: 2017-07-31 13:52:14 +0200 (CEST) |