わかりましたので、5 枚のカードのポーカー ハンドから最高の非ペア カードを返す単純な関数があります。しかし、私が抱えている彼の問題は奇妙です。ランダムに発生するこのランダム バス エラーがあり、その理由はわかりません。使用していた印刷ステートメントだと思いましたが、今はわかりません。ごちゃごちゃしているように見えますが、「テスト印刷」という言葉を出力する下の行を見てください。この行の直後にバスエラーが発生し、2番目の「テスト印刷」に到達しない理由を誰か教えてください。 " 声明。プログラムのメモリが不足している可能性がありますか??? それはおそらく意味がありませんが、他に何も考えられません (少し紛らわしいコードを除外してください):
int Hand::highestNonPair(int *face_array_exclude, int size)
{
int highest = 0;
int contains_excludable = 0;
int i = 0;
if(this->hasAnother(i) == false)
highest = cards[i]->getFace();
for(i= 0;i<cards.size();i++)
{
if((cards[i+1]->getFace() > cards[i]->getFace()) &&
(this->hasAnother(i) == false)){
if(size>0){
for(int c = 0;c<size;c++){
if(cards[i]->getFace() == face_array_exclude[c])
contains_excludable = 1;
}
}
if(!contains_excludable)
highest = cards[i+1]->getFace();
cout<<\nTEST PRINT"<<endl;
contains_excludable = 0;
cout<<\nTEST PRINT"<<endl;
}
}
return highest;
}