Problem mit ctime



  • ich habe ein Probelm (wie überraschend)
    und zwar erhalte ich bei der Comilierung des folgenden Codes

    long 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.


Anmelden zum Antworten