Следующий код
{
time_t t;
t = time(NULL);
char *A;
A = ctime(&t);
printf("%s -\n", A);
sleep(2);
time_t t1;
t1 = time(NULL);
printf("%s HERE A =\n", A);
char *B = ctime(&t1);
printf("%s HERE B =\n", B);
printf("%s\n", B);
}
имеет вывод
Sat Mar 30 19:10:33 2019
-
Sat Mar 30 19:10:33 2019
HERE A =
Sat Mar 30 19:10:35 2019
HERE B =
Sat Mar 30 19:10:35 2019
Так как же меняется переменная A? что мне нужно сделать, чтобы A оставалось с фиксированным значением
замена char *A;
на const char *A;
не помогает
ожидал
Sat Mar 30 19:10:33 2019
-
Sat Mar 30 19:10:33 2019
HERE A =
Sat Mar 30 19:10:33 2019
HERE B =
Sat Mar 30 19:10:35 2019
ctime
не является реентерабельный. У него есть только один буфер, который он использует повторно. Указатель, который он возвращает, является указателем на первый символ этого единственного буфера. - person Some programmer dude   schedule 30.03.2019