0

漂遊ポインタを回避する場合、これら2つの if 条件はどのように評価されますか?

if (vShop[0].vItem[vShop[0].itsActiveItem]!=NULL && vShop[0].vItem[vShop[0].itsActiveItem]->itsQuantity>0) DoPurchase();

ここで、vShop[0] はオブジェクトのベクトルで、vItem はオブジェクトへのポインターのベクトルです。

vShop[0].vItem[vShop[0].itsActiveItem]->itsQuantity>0 をさらにチェックする前に、ポインタが NULL と評価されないようにしたいと考えています。

または、個別に行う必要があります。つまり、次のとおりです。

if (vShop[0].vItem[vShop[0].itsActiveItem]!=NULL) if (vShop[0].vItem[vShop[0].itsActiveItem]->itsQuantity>0) DoPurchase();

つまり、最初のケースはシーケンシャル チェックで、最初の条件が評価された場合、2 番目の条件は自動的に削除されますか? どうもありがとう。

4

1 に答える 1