Valgrind在strchr函数中报告以下memcheck错误
==5801== Conditional jump or move depends on uninitialised value(s)
==5801== at 0x34BB32865A: __strchr_sse42 (in /lib64/libc-2.12.so)
我将gdb链接到valgrind可能会遍历他的strchr代码,但是我做不到。我所有的局部变量都已初始化,程序运行正常。我不知道valgrind错误来自哪里
bool
Graph::CheckValues( cfgs_val_t & cfgs, const char * mval )
{
int matched = 1, av = -1, ev = -1; char * mv, * p1, * p2, * p3, * fn, * args;
cfgs_val_t::iterator iter; bool cfg_anyval = false;
mv = strdup( mval );
p1 = mv;
p2 = p1;
for( ; ; )
{
if( *p2 == '=' )
{
*p2 = '\0';
p3 = strchr( p1, '(' );
if( p3 != nullptr )
{
return true;
}
}
}
除了valgrind错误之外,我的代码工作正常