Forum: Algorithmen, Datenstrukturen und Klassendesign
by himitsu,
10. Sep 2012
Finde ich nicht, denn du hörst nicht zu.
Hier sollte ebenfalls wieder mindestens 1 Compilerwarnung auftauchen.
- Rückgabewert nicht initialisiert (bei s = 5)
- zugewiesener Wert wird nicht benutzt (das erste result := ..., im s < 5)
Und genau deswegen kommt hier 6 raus, weil DU nichts initialisierst, denn sonst würde ein Leerstring aus deiner Funktion rauskommen.
Es wird Test mit 4...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by himitsu,
10. Sep 2012
Es wird eben nur zufällig ein Leerstring zurückgegeben, da du nicht explizit einen Leerstring zuweist.
Du mußt grundsätzlich davon ausgehen, daß ein Result niemals initialisiert ist.
Bei Strings, Interfaces und dynamischen Arrays ist meisten zufällig ein '' zugewiesen, da diese Typen eine automatische Speicherverwaltung besitzen und demnach automatisch vom Delphi initialisiert werden.
...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by himitsu,
10. Sep 2012
Du hast da einen "zufällig" funktionierenden Code.
Wenn man diese Funktion mehrfach in einer Schleife aufruft, dann wirst du dich womöglich wundern, daß es nicht immer funktioniert. :angle2:
Deswegen warnt dich ja auch der Compiler davor.
Geh doch mal deinen Code durch und schau, ob dem Result wirklich immer etwas zugewiesen wird.
Tipp: Was passiert wohl, wenn in der Schleife das IF...