初始化变量时写入大小无效(Valgrind 和 C)

Invalid Write of Size when initialising variables (Valgrind and C)

当我的代码 运行 valgrind 时,我在初始化变量的行上收到 "Invalid write of size [1|4|8]" 错误。

例如

#include <stdbool.h>
#define size 50

int main()
{
  int i;

  bool valid = false; // error seen here
  int array[size];
  for(i = 0; i < size; i++) // error seen here
  {
    array[i] = 0;
  }
}

我对此完全迷失了,所以非常感谢任何帮助。 我不确定这是否与代码其他地方的 calloc() 调用有关,但是 valgrind 正在选择每个初始化行。

需要使用 valgrind 中的 --max-stackframe 选项来避免炸毁堆栈导致无效 reads/writes