使用xcode 5.1.1,它在'printf(“digite o%ihorário:”,i + 1);'
有人对此有任何想法吗?我试图停用lldb,但它没有用。
#include <stdio.h>
int main (){
struct hora {
int h;
int m;
int s;
};
int i, a;
struct hora lista[i];
for (i = 0; i<5; ++i) {
printf("digite o %i horário :",i+1);
scanf("%i:%i:%i",&lista[i].h,&lista[i].m,&lista[i].s);
}
for (a=0; a<5; ++a){
printf("o horário %i é %i:%i:%i", a+1,lista[a].h,lista[a].m,lista[a].s);
}
return 0;
}
答案 0 :(得分:1)
您的代码显示undefined behaviour。,如语句
struct hora lista[i];
您正在使用i
单位化。
详细说明,i
是一个自动存储类型的本地范围变量,它不是隐式初始化的。除非明确初始化,否则i
的内容不确定。因此使用该值是UB。
您可能希望将其更改为
struct hora lista[5];
使其正常。
也就是说,作为备注,C标准中不推荐使用int main()
,使用int main(int argc, char * argv[])
或至少使用int main(void)
。