所以我可以手动修复这个问题,所以这不是一个紧急问题,但我认为这真的很奇怪:
这是发生奇怪的事情之前我的完整代码:
int main(int argc, char** arg) {
int memory[100];
int loadCounter = 0;
bool getInput = true;
print_memory(memory);
还有其他一些不相关的东西。
打印内存只打印应该初始化为全零的数组,但前几个数字是:
+1606636544 +32767 +1606418432 +32767 +1856227894 +1212071026 +1790564758 +813168429 +0000 +0000
(加号和填充零仅用于格式化,因为一旦数组被填充,所有数字都应该在 0-1000 之间。列表的其余部分都是零)
它也不是内存泄漏,因为我尝试初始化一个不同的数组变量,并且在第一次运行时它也给了我很多奇怪的数字。为什么会发生这种情况?
最佳答案
既然您问“C++ 数组初始化到什么?”,答案是它们初始化到它们进入作用域时分配的内存中的任何内容。 IE。 它们未初始化。
请注意,某些编译器会在调试版本中将堆栈变量初始化为零;一旦您开始进行发布构建,这可能会导致令人讨厌的、随机发生的问题。
关于c++ - C++ 数组初始化的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19073186/