c++ - C++ 数组初始化的目的是什么?

标签 c++ memory

所以我可以手动修复这个问题,所以这不是一个紧急问题,但我认为这真的很奇怪:

这是发生奇怪的事情之前我的完整代码:

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/

相关文章:

c++ - 何时在C++中使用extern

C++ 如何获得 sizeof(enum) == sizeof(char)?

c++ - 在运行时创建测试(谷歌测试)

java - 为什么 -Xss 不增加创建的线程数?

我的 std::map of &Objects 和 std::vector of &Objects 导致 C++ 内存泄漏

C++:使用 LSD 基数排序崩溃的字符串排序

c++ - 将 int16_t 内存转换为 float

c - 使用内存映射 I/O 的 memcpy 和 friend

ruby-on-rails - 如何在 Rails 应用程序中获取内存使用情况?

c++ - 如何将 tr1/array 转换为 std::string?