Zitat von
alzaimar:
Zitat von
Olli:
Zitat von
alzaimar:
Code:
void buildSuffixAutomaton(char *x, int m, Graph aut) ...
Igittigitt. Variablen nicht initialisiert. Variablen außerhalb des allernötigsten Bereichs deklariert *brrr*
Nicht so schnell schießen (welche Variablen sind denn nicht initialisiert?), lieber nochmals den Code checken oder direkt bei
Charras & Lecroq beschweren.
Also, ich initialisiere Variablen wenn möglich immer direkt bei der Deklaration und deklariere sie so spät wie möglich (i.e. so kurz wie möglich vor der ersten Benutzung). Das wird von C++ und C99 unterstützt.
Diese Methode hat mehrere Vorteile:
1. Wenn es sich bei der Variablen um ein Stackobjekt handelt, hast du den Aufwand des ctor-Aufrufs erst ab der Zeile mit der Deklaration&Initialisierung. Bei komplexen Objekten kann das einen Unterschied machen.
2. Variablen haben immer einen Standardwert.
3. Baut man zuvor eine Verzweigung (manche benutzen gern goto *würg*) ein, kann nicht hinter der Verzweigung die Variable benutzt werden (wenn sie nur im nächstnötigen Scope liegt) oder zumindest nicht uninitialisiert benutzt werden.
Das sind sozusagen kostenlose Codeverbesserungen die als "Stilmittel" automatisch bestimmte durchaus gängige Fehler vermeiden. Aber keine Angst, ich kenne auch Code der sich partout nicht dran hält und Menschen die noch partout C92 programmieren wollen
War also nicht so ernst gemeint wie du es scheinbar aufgefaßt hast