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更改时不会发生变化?
我的通灵调试意识告诉我,要么a实际上没有设置,要么你实际上没有设置a你认为你正在设置的.
也许你在打电话init之前没有打电话read,或者你在不同的情况下打电话给他们test
通常当你得到这样的混乱数字时,这是一个尚未初始化的"垃圾"号码的标志.