请教函数传值问题!
#include <time.h>
#include <stdio.h>
void getCurrentTime(char *str);
int main(){
char myTime[30];
getCurrentTime(myTime);
printf( "Current time: %s\n ",myTime);
return 0;
}
void getCurrentTime(char *str){
time_t now;
struct tm *timenow;
time(&now);
timenow=localtime(&now);
strftime(str,sizeof(str), "%Y%m%d%H%M%S ",timenow);
}
程序如上,能编译通过,但就是实现不了预期的结果,打印出来的信息都是乱码,用数组调用函数就应该这样写啊,实在找不出错误,请达人指教.本人新手上路,希望解答能够详细一些,谢谢!
[解决办法]
strftime(str,sizeof(str), "%Y%m%d%H%M%S ",timenow);
改为
strftime(str,128, "%Y%m%d%H%M%S ",timenow);
因为 str 是一个指针,它在32位系统下,是四个字节
[解决办法]
void getCurrentTime(char *str);
参数char *str,在有用sizeof(str)是4,
你用strftime的时候就越界了。