【发布时间】:2014-06-20 08:36:44
【问题描述】:
在以下代码中,当我使用 scanf 为其成员分配值时,程序会停止而没有任何错误。
#include <stdio.h>
typedef struct {
int hours, minutes, seconds;
} Time;
int main (void) {
Time getTime (void);
Time time;
time = getTime();
printf ("%i:%i:%i", time.hours, time.minutes, time.seconds);
}
Time getTime (void) {
Time time;
printf ("Enter time (hh:mm:ss): ");
scanf ("%i:%i:%i", time.hours, time.minutes, time.seconds);
return time;
}
输出示例:
Enter time (hh:mm:ss): 12:12:12 - 然后程序停止执行
当我将\n 添加到最后一个 printf 以刷新缓冲区时,它仍然没有改变任何东西。
我尝试使用默认值初始化这两个结构,但没有区别,即Time time = {0, 0, 0};
【问题讨论】: