c - LLDB 错误,我该怎么办?

标签 c xcode lldb

使用 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/

相关文章:

c - 当前版本的 C 或 C++ 中 graph.h 的替代品是什么?

ios - Swift IOS Spritekit 根据设备大小缩放 Sprite 大小

debugging - lldb 设置异常断点 "-w"

python - 什么时候调用 __lldb_init_module?

c - 在哪里可以找到 radix-5 FFT 实现?

c - 浮点运算的精度

ios - 无法存档 Xcode 项目,错误没有这样的模块 'Alamofire'

xcode - : Xcode shows files still as modified after commit如何解决

ios - 如果类中的实例变量的值已更改,如何触发断点?

c - 函数指针作为qsort函数的参数