PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : struct tm * localtime (const time_t *time) gibt immer NULL zurück



barton4
04-03-2007, 18:35
Ich wollt ein programm schreiben das mir ertas bei der zeitberchnung hilft.
Leider funktioniert schon der Anfang nicht.

Die Funktion localtime() die mir aus der unix zeit eine structur tm erzeugt gibt immer NULL zurück



#include <stdio.h>
#include <time.h>
#include <string.h>


int main()
{
time_t now, final;
struct tm bdnow, bdfinal;
struct tm *bdresult;

time(&now);
printf("seconds since 1970: %i\n", now);
if( (bdresult = localtime(&now)) == NULL );
{
perror("err::::");
}
memcpy(bdresult, &bdnow, sizeof(struct tm));
printf("%i\n", bdnow.tm_mon);
}




weis jemand was ich da falsch gemacht hab?

peschmae
04-03-2007, 19:50
Dein Code funktioniert durchaus. Nur solltest du das ; direkt nach dem if() wegnehmen wenn du willst dass das if die Wirkung hat die du dir davon erhoffst :D



if( (bdresult = localtime(&now)) == NULL ); /* <-- da ist dein Bug */
{
perror("err::::");
}

MfG Peschmä

barton4
06-03-2007, 19:14
Danke für den Tipp... immer diese Semikolons :-)


es ist nicht nur ein fehler drinn, bei der Funktion
memcpy(bdresult, &bdnow, sizeof(struct tm)); habe ich dest und src vertauscht.

auf jedenfall geht es jetzt...

peschmae
06-03-2007, 22:38
Achso, das hab ich gar nicht erst angeguckt. ;)

MfG Peschmä