在调用之前初始化变量时,fgets失败

森拉达

我有以下代码来读取chip8 rom并打印出相应的说明:

int main() {
    FILE *fp = fopen("./roms/IBMLogo.ch8", "rb");
    uint8_t *code;
    while(fgets(code, 3, fp)) {
        disassemble_chip8(code);
    }
    return 0;
}

它工作得很好,我得到了我期望得到的输出。但是,当我添加变量初始化时:

int main() {
    FILE *fp = fopen("./roms/IBMLogo.ch8", "rb");
    uint8_t *code;
    uint32_t hex_address = 0; // this line right here
    while(fgets(code, 3, fp)) {
        disassemble_chip8(code);
    }
    return 0;
}

fgets失败,并且未进入循环。我曾尝试调试此问题,但我无法终生解决问题。这是我所缺少的C的一些随机行为吗?

赞·山猫

“随机行为”是您的程序使用fgets读取到所指向的内存中uint8_t *code

问问自己,“代码指向什么?”

意识到答案是“我不知道,因为我没有将其设置为任何东西”。

THAT是“随机”的行为。堆栈存储器或寄存器中分配给编译器的任何值code都是所使用的。这是“随机的”,因为您不知道该值将是什么。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么实例变量在构造函数调用之前被初始化?

Swift:便捷初始化程序-在self.init调用之前使用的Self

Dart在被调用之前不会初始化静态列表

在super.init调用之前初始化非可选属性,而无需复制代码

Pytorch:AttributeError:即使初始化,也无法在Module .__ init __()调用之前分配模块

在调用onCreate之前初始化变量是不好的做法吗?

fgets() 自己初始化变量

在组件使用之前初始化服务数据

调用初始化函数时无法识别$ scope变量

在Rails中调用初始化变量时出错

初始化之前使用的变量

在初始化之前使用变量。JS

在初始化之前使用的Swift变量

Swift:在初始化之前使用的变量

BeanCreationException:初始化方法的调用失败

是变量初始化失败吗?

int变量初始化功能失败

初始化IBOutlet时如何初始化变量?

在C#中,是否在调用main()方法之前初始化所有静态变量?

静态类变量是否在首次调用静态成员函数之前初始化?

变量应该在调用函数之前初始化吗?

本地变量可能在访问之前未初始化-调用.TryParse()之后

初始化和调用变量

IllegalStateException:在Facebook SDK 3.5上调用openActiveSession时,在初始化之前使用的OrcaSharedPreferences

为什么在使用之前不初始化C ++ const模板化矢量?

初始化变量时出错

创建名称为'entityManagerFactory'的bean时出错初始化方法的调用失败

CoreData:错误:无法在创建时失败的NSManagedObject类上调用指定的初始化程序

Android-ImageLoader必须在UIL中使用之前通过配置进行初始化