将值分配给变量后获取垃圾值,看不到原因
Getting garbage value after assigning value to a variable, can't see why
我正在为我的类"动态"(未显示)创建一个新对象,该对象继承自"有机",该对象继承自"存在"某些参数,例如id,biomeRow等。
有机有:features_(结构体),max_spawn_,total_spawn_,age_dur_(数组)和current_age_。
问题:创建动态对象时,除max_spawn_外,所有值都设置得恰到好处。在创建动态之前,我已经完成了我的printfs,在创建动态和为输入值创建有机时,所有这些都是正确的。
功能结构是正确的,total_spawn_是正确的,age_dur_数组和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%dn", 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];
相关文章:
- 我不断收到 [错误] ID 返回 1 退出状态错误,但看不到问题所在
- 看不到文件'SDL2.lib'
- WSL 看不到环境变量
- 为什么我的 FreeRTOS 任务看不到类成员?
- Google Colab 看不到 .so 文件
- 派生类看不到基类成员
- 为什么我看不到字符串?
- CMake 看不到SDL2_PATH环境变量 (Windows)
- OpenMP 任务看不到共享变量的更改
- handleMessage看不到我的类和函数
- 为什么 connect() 函数看不到插槽?
- 模板类看不到继承的模板成员
- 为什么即使链接器找到目标文件,我的程序也看不到函数定义?
- 将 somedialog.h 包含在项目的其他部分中会使编译器看不到 ui_somedialog.h
- SFML - 代码::块看不到 sfml 图形(等)文件
- CMake 看不到源文件,找不到 #includes
- ifstream在OSX上看不到新内容
- C++概念看到我的类型的函数,但看不到 std::vector 的函数
- 将值分配给变量后获取垃圾值,看不到原因
- 我看不到从 std::queue 中获取元素的方法