2016-07-09 2 views
1

ポインタの配列の最後の要素にアクセスする状況があります。私はこれについてどうやって行くのだろうと思っています。リターンポインタが別の関数にアクセスする

ここにコードがあります。

void Dealer::dealHoleCards() 
{ 
    //Takes the last two cards off the deck and stores in an Array 
    p_holeCards[0] = p_vecDeck.back(); 
    p_vecDeck.pop_back(); 
    p_holeCards[1] = p_vecDeck.back(); 
    p_vecDeck.pop_back(); 
} 

Card* Dealer::getHoleCards() 
{ 
    //Call deal and returns pointer to first element 
    dealHoleCards(); 
    return p_holeCards[0]; 
} 

だから私は、可能な手に対して分析するために、私の手の評価クラスにこのオーバーを渡す必要がありますが、私はそれが範囲外にそれを送っています配列の2番目の要素にインクリメントしようとすると?私はチェックして、配列は正しい値が設定されているので、少し混乱しています。私は自分の増分を間違っていると思う。私は驚きではありませんので、私は驚いています。

どのように私はそれを増やすでしょうか? getHoleCards()の値を変数に設定してから変数をインクリメントします。それは少しうまくいきませんので、動作しません。

これはおそらく簡単な質問への答えを知っている人におかげで前にありがとう。

ごめんなさい。事前に

乾杯、 ポール

+0

'p_holeCards'とは何ですか?それは 'Card'か' Card * 'の配列ですか?いずれの場合でも、最初の要素へのポインタを返さず、最初の要素の* value *を返します。 – Dmitri

+0

カード*申し訳ありませんが私は言ったべきです –

+0

私はポインタがポインタ[]と同じであると思った –

答えて

3

あなたの問題は、return文です。

return p_holeCards[0]; 

は、その実際のオブジェクトであるポインタへのポインタを返すためにも**カードを忘れてはいけない

return p_holeCards; 

または

return &p_holeCards[0]; 

であるべき。

+0

ブライアンに感謝しています。 –

+0

カード**ディーラー:: getHoleCards() { \t dealHoleCards(); \t return p_holeCards; } –

+0

ああ、申し訳ありませんが急いでそれをしました。あなたは、実際のオブジェクトを指すポインタを返したいと思います。その悪口を – brianxautumn

関連する問題