在一个方法中赋值给int,下一个方法的值改为-89xxxxxxxxx

Assign value to int in one method, next method value is changed to -89xxxxxxxxx

本文关键字:方法 下一个 -89xxxxxxxxx int 赋值 一个      更新时间:2023-10-16
class test
{
    public:
        int a;
        void init(int _a);
        void read(void);
}
我有这个简单的程序。从另一个类中,我用某个值"_a"初始化测试对象。
void init(int _a){
    a = _a;
}

初始化:

testObject.init(3);

但是当我输入"read()"时,a的值= -858993460。我知道出了什么问题。它可能是一个不再使用的指针。但是。当我写"a = _a"时,a的VALUE不应该是_a的VALUE的副本吗?

void read(void){
    printf("a-value %d n" , a);
}

我如何将_a的值复制到a,以便当_a改变时a不会改变?

我的通灵调试感觉告诉我,要么a实际上没有设置,要么您实际上没有设置您认为正在设置的a

也许你没有在调用read之前调用init,或者你在test的不同实例上调用它们

通常当你得到这样一个混乱的数字时,这是一个没有初始化的"垃圾"数字的迹象。