使用 xcode 5.1.1,它在“printf("digite o %i horário :",i+1);”行上显示消息 Thread 1:EXC_BAD_ACESS(code=1,adress=0x7ffae2c04c48);
有人对此有任何想法吗?我尝试停用 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;
}
最佳答案
您的代码显示undefined behaviour .,如声明中所示
struct hora lista[i];
您正在使用未初始化的i
。
详细来说,i
是一个自动存储类型的局部作用域变量,它不会隐式初始化。除非显式初始化,否则i
的内容是不确定的。因此,使用该值就是 UB。
您可能想将其更改为
struct hora lista[5];
使其正确。
也就是说,请注意,在 C 标准中不建议使用 int main()
,请使用 int main(int argc, char * argv[])
或 at至少,int main(void)
。
关于c - LLDB 错误,我该怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31923457/