ctime 函数实现疑惑
我们可以看到c函数库手册中其原型char *ctime(const time_t *time); 显然输入参数和函数返回值类型不一致,因此,这样函数返回值的字符串就不可能由输入参数指定这个字符串的空间地址
这样的话,我就有点疑问了,这个ctime函数返回值的字符串指针到底是一个全局变量呢?还只是一个静态变量呢?
显然这个字符串空间不会由malloc函数获取,否则空间无法释放会造成内存泄露
2010-07-04 04:02
程序代码:#include <stdio.h>
#include <time.h>
int main(void)
{
time_t t;
time(&t);
printf("Today's date and time: %s\n", ctime(&t));
printf("The string address 1 : %x\n", ctime(&t));
printf("The string address 2 : %x\n", ctime(&t));
return 0;
}上述代码执行结果显示这个地址值一致不变,更加确认这个字符串地址值不是malloc动态申请的
2010-07-04 04:05

2010-07-04 04:40

2010-07-04 16:59
2010-07-04 17:21