这个功能非常混乱,导致我的测试仪出现分段故障,有什么方法可以改进它吗?它应该采用sku参数,它是Product对象的属性,并将其与库存数组中的元素(由指向Product的指针组成,大小为50)匹配,如果发现我应该返回指针。< / p>
Product* Supplier::getProduct(const string &sku)
{
bool found = false;
int counter =0;
Product* ret= new Product();
while (found =false && counter< inventory.size())
{
if(inventory[counter] && sku == inventory[counter]->getSKU())
{
found = true;
ret = inventory[counter];
}
counter++;
}
if (found ==false)
{
cout << "not found" << endl;
}
return ret;
}
答案 0 :(得分:4)
您拥有代码found = false
。这需要found == false
或!found
。
答案 1 :(得分:2)
变化:
while (found =false && counter< inventory.size())
到
while (found==false && counter< inventory.size())