[英]Getting garbage value after assigning value to a variable, can't see why
我正在創建類“ Dynamic”(未顯示)的新對象,該對象繼承自“ Organic”,而“ Organic”繼承自“ Being”某些參數,例如id,biomeRow等。
Organic具有:features_(一個結構),max_spawn_,total_spawn_,age_dur_(一個數組)和current_age_。
問題:創建動態對象時,除max_spawn_外,所有值都設置正確。 在創建Dynamic之前,在Dynamic創建過程中以及在為輸入值創建Organic過程中,我都完成了printfs,所有這些操作都是正確的。
特征struct是正確的,total_spawn_是正確的,age_dur_ array和current_age_也是正確的。
除了max_spawn_以外,所有這些都是我要的。 maxSpawn是我要傳遞的值(20),max_spawn_應該為20,但不是。 我所有的printfs和調試控制台都顯示-858993460附近。 我猜這只是垃圾,但我不知道當我做的所有事情是怎么可能的:
max_spawn_ = maxSpawn;
因此,這是我的功能:
Organic::Organic(int id, int biomeRow, int biomeColumn, int biomeType, int beingType,
int object, Features features, int maxSpawn, int totalSpawn,
int age_dur[5], int current_age)
: Being(id, biomeRow, biomeColumn, biomeType, beingType, object)
{
features_ = features;
max_spawn_ = maxSpawn;
total_spawn_ = totalSpawn;
age_ = current_age;
for (int i = 0; i <= 5; i++)
age_dur_[i] = age_dur[i];
printf("\n%d\n", max_spawn_);
}
age_dur
(可能是age_dur_
)是int [5]
數組。 像這樣復制:
for (int i = 0; i <= 5; i++)
age_dur_[i] = age_dur[i];
將覆蓋近一些 age_dur_
的東西 。 如果max_spawn_
毗鄰age_dur_
,它可能被覆蓋的垃圾。
將循環更改為:
for (int i = 0; i < 5; i++)
age_dur_[i] = age_dur[i];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.