cpp-check错误是:error mismatchAllocDealloc false Mismatching allocation and deallocation: val2
我该怎么做才能解决此错误?
void MainWindow::ParseDemo(char *pBuf)
{
char* val2 = new char[256];
for (int i = 0; i < 254; i++)
{
val2[i] = pBuf[i+305];
}
val2[254] = 0; // 0-Termination
QString sunit(val2);
DoStuff(sunit);
delete val2;
// ...
}
答案 0 :(得分:6)
error mismatchAllocDealloc false Mismatching allocation and deallocation: val2
new
和new []
需要与delete
和delete []
以一致的方式使用,这就是cppcheck抱怨的原因。
我该怎么做才能解决此错误?
写delete [] val2;
,应该修复它。