Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ cppcheck认为alloc和dealloc不匹配_C++_Cppcheck - Fatal编程技术网

C++ cppcheck认为alloc和dealloc不匹配

C++ cppcheck认为alloc和dealloc不匹配,c++,cppcheck,C++,Cppcheck,cpp检查错误为:错误不匹配hallocdealloc错误不匹配分配和解除分配: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(

cpp检查错误为:
错误不匹配hallocdealloc错误不匹配分配和解除分配: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;
  // ... 
}
void主窗口::ParseDemo(char*pBuf)
{
char*val2=新字符[256];
对于(int i=0;i<254;i++)
{
val2[i]=pBuf[i+305];
}
val2[254]=0;//0-终止
QString sunit(val2);
多斯塔夫(苏尼特);
删除val2;
// ... 
}
new
new[]
需要以与
delete
delete[]
一致的方式使用,这就是cppcheck投诉的原因

我应该做什么来修复此错误

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;
  // ... 
}
写入
delete[]val2,应该可以修复它


顺便说一句,这并不是直接表示内存泄漏,但它很容易变成内存泄漏,因为它基本上是未定义的行为。

它并不是说存在泄漏,而是说存在不匹配。它可能还会说,如果你写了
free(val2)