LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 656|回复: 1

为什么一个简单的curses中老会出现"段错误"的报错!

[复制链接]
发表于 2004-12-9 11:34:48 | 显示全部楼层 |阅读模式
各位大虾您好!
我在一个显示时间的curses程序编译后老会报段错误的报警!

程序如下:
#include <stdio.h>
#include <stdlib.h>
#include <sys/time.h>
#include <unistd.h>
#include <curses.h>
int main()
{
struct timeval time;
char * sec;
//char * usec;
initscr();
box(stdscr,ACS_HVINE,ACS_LVINE);
while (1){
gettimeofday(&time,NULL);
sprintf(sec,"%d",time.tv_sec);
mvaddstr(10,10,sec);
}
endwin();
return 0;
}

我用这样命令: gcc -o time time.c -lncurses

编译就出现这样的报警: 段错误

请高手把我看看!还有,为什么我把sprintf 语句删了后就可以了编译成功!
难道不能同时用这样的转换吗?(浮点型转字符型)!
还有, 有没有像mvaddstr 相似的语句在界面上输出 变量的 语句!

请大虾指教一下!!

万分感谢!!
发表于 2004-12-9 13:05:34 | 显示全部楼层
time.tv_sec是个unsigned long 类型.
看不懂为什么把它付给一个指针.
试试unsigned long sec;
sprintf(sec,"%d",time.tv_sec);
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表