CPPUTEST内存删除

时间:2015-12-12 12:24:27

标签: c++ unit-testing cpputest

我的代码如下:

char* Add()
{
    p = new char[10];
    return p;
}

我使用CPPUTEST和测试代码如下:

TEST(MyTestGroup, TestAdd_1)
{
    p = Add(); // the above function
    delete p;
}

但错误是:"分配/解除分配类型不匹配"

我不知道为什么,请帮忙。 提前谢谢!

1 个答案:

答案 0 :(得分:2)

  

但错误是:“分配/解除分配类型不匹配”

那是因为您分配了一个数组,但是释放了一个对象。

  var hp = new List<double>();
  hp.Add(200);
  hp.Add(150);
  hp.Add(300);
  hp.Add(50);

  var dmg = new List<double>();
  dmg.Add(50);
  dmg.Add(120);
  dmg.Add(240);
  dmg.Add(300);

  var length = hp.Count;



  var timeLists = new List<List<double>>();
  var p1dmg = 50;
  for (int i = 0; i < length; i++)
  {
    var ptime = hp[i] / p1dmg;
    timeLists.Add(new List<double>());
    timeLists[i].Add(dmg.Sum(d => ptime * d));
  }