簡體   English   中英

在將值賦給變量后獲取垃圾值,看不到為什么

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM