だから..アサートで関数をテストしています:(pBola1の値は1です)
assert(BomboTest.TreureBola(1)==pBola1);
BomboTest.TreureBola リストの乱数 (この場合は 1 を返す必要があります) を返す関数です。
cBola* cBombo::TreureBola(int num)
{
int posicio_aleatoria;
posicio_aleatoria= rand() % (num);
return(Boles.TreureElement(posicio_aleatoria));
}
そしてTreureElementは、抽出したい要素の位置を知っている動的リストの要素を返す関数です(この場合、1である「retorn」を返します)
cBola* cLlista::TreureElement(int posicio)
{
int i;
cBola* recorreLlista;
cBola *retorn;
recorreLlista=primer;
retorn = primer;
i=0;
if (posicio == 0)
{
primer = (*primer).getSeguent();
}
else
{
// Busquem la posició //
while(i < posicio)
{
recorreLlista= retorn;
retorn = (*retorn).getSeguent();
i++;
}
(*recorreLlista).setSeguent( (*retorn).getSeguent() );
}
numElements--;
return retorn;
}
理由はわかりませんが、アサートは失敗します。'retorn' というポインタがあるので、TreureElement が返す値はわかりますが、TreureBola が返す値はわかりません.TreureBola が返す値をデバッガで確認する方法はありますか?
PD:Visual Studio 2010 を使用しています。