Problem mit ctime
-
ich habe ein Probelm (wie überraschend)
und zwar erhalte ich bei der Comilierung des folgenden Codeslong sek; time(&sek); srand(unsigned(sek));die ja einfach nur den Zufallsgenerator anhand der Zeit neu inizialisieren soll vom compiler die meldung :
Error C2664: 'time' : cannot convert parameter 1 from 'long' to 'time_t *'
in der Zeile
time(&sek);was mache ich da Falsch ?
Danke schonmal im Vorraus für die Hilfe ...Ach ja ich bentzte VS2005
-
Machs einfach so:
srand(time(0));Oder wenn dir die Warnung nicht gefällt:
srand(static_cast<unsigned>(time(0)));Gruß
-
Juhu nun gehts !
Dank dir !
-
in VC++ 2005 ist time_t ein int64, also ein 32-bit-Integer, kein 64-Bit-Integer.
__int64 sek; time(&sek); srand(unsigned(sek));
-
kartoffelsack schrieb:
in VC++ 2005 ist time_t ein int64, also ein 32-bit-Integer, kein 64-Bit-Integer.
Wobei du dich für portablen Code nicht darauf verlassen solltest, daß das überall so ist. Mit "time_t" bist du dagegen auf der sicheren Seite.
PS: Und die Hilfsvariable benötigt man gar nicht - time() schluckt auch einen Null-Zeiger, wie in FireFlow's Beispielen zu sehen ist.