#include <stdio.h>
#include <time.h>
int main ()
{
time_t time_raw_format;
struct tm * ptr_time;
char *buff;
time ( &time_raw_format);
ptr_time = localtime ( &time_raw_format );
}
如何将其复制到*buff
,返回类型ptr_time
为struct tm*
,我的实际目标是将系统日期和时间复制到char缓冲区以及如何计算大小由localtime
返回,因为*ptr_time
是一个指针,如果我sizeof
我得到的值为4
答案 0 :(得分:1)
如果您正在寻找如何将人类可读时间放在字符串中,这是一个解决方案:
#include <time.h>
char *buff = asctime(ptr_time);
buff
的内存由ctime
和asctime
静态分配。
答案 1 :(得分:0)
如果理解正确,您希望将struct tm
转换为字符串,请使用strftime():
char buf[200];
strftime(buf, sizeof(buf), "%c", ptr_time);
答案 2 :(得分:0)
您可以使用strftime()
char buff[20];
strftime(buff, sizeof(buf), "%Y-%m-%d %H:%M", ptr_time);
ptr_time
是一个指针,*ptr_time
正在取消引用指针。 sizeof(ptr_time)
在32位系统上给出值4。 struct tm
的大小为sizeof(struct tm)
或sizeof(*ptr_time)
,它给出了指针所指向的大小。