Hallo, On Sun, 26 Jan 2003 at 01:08 (+0100), David Haller wrote:
On Sat, 25 Jan 2003, Bernhard Walle wrote:
On Sat, 25 Jan 2003 at 15:45 (+0100), Bastian Schern wrote: [struct tm initialisieren]
Genügt das als Initialisierung? struct tm tm = { 0 };
Mein Compiler akzeptiert das gar nicht.
Man koennte alle Elemente von struct tm explizit initialisieren:
==== struct tm t = { 0, 0, 0, /* seconds, minutes, hours */ 0, 0, 0, /* day, month, year */ 0, 0, 0, /* dow, diy, DST */ 0L, NULL /* gmtoff, tm_zone */ }; ====
[..]
Ich wuerde stattdessen folgendes machen: [..] memset(&tm, 0, sizeof(tm)); ^^^^^^^^^^ sizeof(struct tm) !
Nicht unbedingt. Er hat ja eine Variable vom Typ struct tm mit dem Namen tm (keinen Pointer!) deklariert. Dann funktioniert auch sizeof(tm). Ich finde es aber ziemlich verwirrend die Variable genaus zu benennen wie den Produkttyp.
Oder gleich dynamisch allokieren:
Ich finde das ein wenig uebertrieben. Schliesslich muss man dann immer daran denken, den Speicher wieder freizugeben. Wozu den Aufwand? Gruß, Bern'der lieber einen Garbage Collector haette :-)'hard -- Es gibt keinen Grund, warum irgendjemand einen Computer in seinem Haus wollen würde. -- Ken Olson, Präsident der Digital Equipment Corp., (1977)