初始化变量时写入大小无效(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
当我的代码 运行 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