首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

请问函数传值有关问题

2012-02-14 
请教函数传值问题!#includetime.h#includestdio.hvoidgetCurrentTime(char*str)intmain(){charmyTime

请教函数传值问题!
#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的时候就越界了。

热点排行
Bad Request.