C++ 为变量赋值后获取垃圾值,can';我不明白为什么

C++ 为变量赋值后获取垃圾值,can';我不明白为什么,c++,C++,我正在创建一个类“Dynamic”(未显示)的新对象,它继承自“Organic”,继承自“Being”某些参数,如id、biomeRow等 有机有:特征(结构)、最大繁殖、总繁殖、年龄(数组)和当前年龄 问题是:在创建动态对象时,除了max\u spawn\u之外,所有值都设置得恰到好处。我在创建Dynamic之前,在创建Dynamic和为输入值创建Organic之前都做过printfs,它们都是正确的 Features struct正确,total_spawn正确,age_dur_数组和cur

我正在创建一个类“Dynamic”(未显示)的新对象,它继承自“Organic”,继承自“Being”某些参数,如id、biomeRow等

有机有:特征(结构)、最大繁殖、总繁殖、年龄(数组)和当前年龄

问题是:在创建动态对象时,除了max\u spawn\u之外,所有值都设置得恰到好处。我在创建Dynamic之前,在创建Dynamic和为输入值创建Organic之前都做过printfs,它们都是正确的

Features struct正确,total_spawn正确,age_dur_数组和current_age也正确

所有这些都是我要求的,除了max_spawn_。maxpawn是我传递的值(20),max_spawn_uu应该是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_);
}
Organic::Organic(int-id、int-biomeRow、int-biomeColumn、int-biomeType、int-beingType、,
int对象、功能、int maxpawn、int totalSpawn、,
int age_dur[5],int current_age)
:Being(id、biomeRow、biomeColumn、biomeType、beingType、object)
{
特征=特征;
最大产卵量=最大产卵量;
总产卵量=总产卵量;
年龄=当前年龄;
对于(int i=0;i
age\u dur
(大概是
age\u dur
)是
int[5]
数组。如下复制:

for (int i = 0; i <= 5; i++) 
        age_dur_[i] = age_dur[i];

以十六进制输出值,是吗?无论如何,您的成员和参数的命名方式非常糟糕。同样相关:,也可能是:
Organic::Organic()调用中的某个内容
?由于代码的这一部分没有包括在内,很难猜测,但是那里可能会出错。查看您的实际类定义会很有趣。
max\u spawn\uuu
是否接近
age\u dur\uuu
?如果它是
int[5]
,您正在超限
age\u dur\uu
。(您的循环应该有
i<5
作为其条件,而不是
i使用所有警告和调试信息(例如
g++-Wall-Wextra-g
)编译。请特别使用调试器(
gdb
)watchpoints@Paul鲁布:谢谢!这正是问题所在。马克斯·斯沃恩在阿格·杜尔旁边,我没有注意到
for (int i = 0; i < 5; i++) 
  age_dur_[i] = age_dur[i];