漂遊ポインタを回避する場合、これら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 番目の条件は自動的に削除されますか? どうもありがとう。