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

Eas*_*der -1 c++

class test
{
    public:
        int a;
        void init(int _a);
        void read(void);
}
Run Code Online (Sandbox Code Playgroud)

我有这个简单的程序.从另一个类我初始化测试对象的值为"_a".

void init(int _a){
    a = _a;
}
Run Code Online (Sandbox Code Playgroud)

在里面:

testObject.init(3);
Run Code Online (Sandbox Code Playgroud)

但是当我输入"read()"时,a = -858993460的值.我明白有些事情是错的(:)).它可能是一个不再使用的指针.但.当我写"a = _a"时,a的VALUE不应该是_a的值的副本吗?

void read(void){
    printf("a-value %d \n" , a);
}
Run Code Online (Sandbox Code Playgroud)

如何将_a的值复制到a,以便_a更改时不会发生变化?

Sam*_*ica 5

我的通灵调试意识告诉我,要么a实际上没有设置,要么你实际上没有设置a你认为你正在设置的.

也许你在打电话init之前没有打电话read,或者你在不同的情况下打电话给他们test

通常当你得到这样的混乱数字时,这是一个尚未初始化的"垃圾"号码的标志.