Wpis z mikrobloga

#cpp #programowanie

dlaczego to działa:

time_t tm;
time( &tm );
struct tm *t2 = localtime(&tm);
char buf[1024];
strftime( buf, sizeof(buf), "%c", t2 );

a to nie działa:

time_t tm;
time( &tm );
struct tm *t2;
localtime_s(t2, &tm);
char buf[1024];
strftime( buf, sizeof(buf), "%c", t2 );
  • 13
@MamCieNaHita: exception i brak exception :D
@filozof900: to nie moja funkcja, ja tylko chciałem podmienić localtime na localtime_s, bo mnie denerwował warning, a to jest już taki low-level, że nie wiem co tu się dzieje. :D @Ruy_Lopez: np. nie rozumiem o co chodzi w alokowaniu struktury, nigdy nie widziałem czegoś takiego :(
@Ruy_Lopez: np. nie rozumiem o co chodzi w alokowaniu struktury, nigdy nie widziałem czegoś takiego :(


@Capt_S: struct tm *t2; alokuje wskaznik, ktory na maszynach 64 bitowych bedzie zawsze 64 bitowy, bo jedyne co robi to pokazuje gdzie w pamieci jest struktura

ty musisz zaalkowac strukture czyli
struct tm t2; (bez *) i wyciagnac do niej wskaznik przez &
@Capt_S: z localtime trochę pobałaganili i teraz na windowsie wersja thread-safe to localtime_s, a na linuxie localtime_r, obie funkcje mają parametry zamienione miejscami XD