Zeiger übergeben und variablen ändern



  • Hallo,

    ich hab glaubig ein ganz simples problem, aber ich finde den fehler nicht, wahrscheinlich weil ich mich mal wieder zulange damit beschäftige.

    int setzezeit(int *tag, int *monat, int *jahr, int *stunde, int *minute, int *sekunde)
    {
    	tag = 0;
    /*
    	struct tm *tmzeit;
    	//d->tag = 5;
    	//printf("%d", d->tag);
    	time_t tzeit;
    	time(&tzeit);
    */
    	return 0;
    }
    

    ich übergebe die zeiger für zeitvariablen an meine funktion, aber wenn ich dort jetzt schreibe tag = 0; dann sagt mein compiler 100 komische fehler, wenn ich die zeile weg lasse, dann hab ich gar keine fehler.... was mach ich denn falsch?



  • ^^vor c99 mussten alle variablen als erstes in der funktion stehen. setz dein 'struct tm tmzeit' ganz nach oben, dann sollten die fehler weg sein.
    🙂



  • anscheind macht die time.h probleme... setzt ich den compiler auf c++ dann gehts, setzt ich ihn auf c, gehts nicht...

    ich bekomm die kriese -.-
    jemand ne ahnung ob´s wirklich an der time.h vom VS2008 liegen kann?

    kann mir jemand sagen wie

    size_t strftime(char *s, size_t smax, const char *fmt, const struct tm *tp)
    

    http://www2.hs-fulda.de/~klingebiel/c-stdlib/time.htm
    das benutzte um mir die aktuelle zeit als string auszugeben, ich komm damit irgendwie nicht klar...

    wie intitalisiere ich das?

    char s[100];
    ...
    size_t strftime(char *s, size_t 100, const char *fmt, const struct tm *tp)
    ????
    


  • TTP schrieb:

    setzt ich den compiler auf c++ dann gehts, setzt ich ihn auf c, gehts nicht...

    In C++ ist das, was fricky angesprochen hat, ja auch erlaubt, in C (89) nicht.

    jemand ne ahnung ob´s wirklich an der time.h vom VS2008 liegen kann?

    Nein, kann nicht sein.

    char s[100];
    ...
    strftime(s, sizeof s, "formatstring, tmzeit);
    


  • ahh, geht, danke 🙂


Anmelden zum Antworten