-1
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 的值的副本吗?

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

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

4

1 回答 1

5

我的心理调试感觉告诉我,要么a实际上没有设置,要么你实际上并没有设置a你认为你正在设置的那个。

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

通常,当您收到这样一个混乱的数字时,这是一个尚未初始化的“垃圾”数字的标志。

于 2013-05-16T22:09:32.700 回答