我对这个项目有疑问,我试着在论坛上搜索答案,但我一无所获。
struct orario {
int hours;
int minutes;
int seconds;
char *format;
}orario1;
int main(int argc, char *argv[]) {
sscanf(argv[1],"%d:%d:%d %s",&orario1.hours,&orario1.minutes,&orario1.seconds,orario1.format);
printf("%d:%d:%d %s",orario1.hours,orario1.minutes,orario1.seconds,orario1.format);
输出对于数字部分是正确的,但字符串(例如AM或PM)是意外的(null)。
我无法识别我的错误,有人可以找到并告诉我吗?!
谢谢。
答案 0 :(得分:1)
您的代码具有未定义的行为,因为char format[8];
是未初始化的指针。
使用
%7s
和{{1}}。并在依赖具有值的变量之前检查返回值。