数组成员的值不合逻辑地更改

时间:2012-01-07 15:32:33

标签: c arrays declaration

当我声明一个数组时,我注意到了一次,

int arr[10];

一段时间后,虽然在一段时间内没有任何影响,但数组成员的值会发生变化。 然后我用“新”动态分配,问题解决了。我认为一切都应该动态声明。但这不应该是真的。什么是合乎逻辑的原因?

1 个答案:

答案 0 :(得分:3)

可能有多少原因:

  • 初始化阵列成员(如果它位于本地存储上)或者如果不包含任何随机值,则将其初始化。
  • 你可能会在同一个函数中覆盖其他数组的边界,从而破坏堆栈和数组。
  • 你以某种神奇的方式破坏了堆栈。