私はポインタ(hw )をトラバースする必要がある15x15の配列を持っています。私はパズルソルバを書いているので、縦方向にいくつかの単語を検索する必要があります。横方向の検索はしましたが、配列列をcolumnでトラバースできません.tmpが終わりに達した後、毎回ptrをtmpに割り当てようとしています。カラム。ポインタを使用して列ごとに多次元配列の列を移動します
void VerticalSearch(char** puzzleArray, searchedWord* word) {
int len = word->wordLength;
char **tmp = puzzleArray;
char *ptr = &puzzleArray[0][0];
string s;
for (int i = 0; i < 15; i++) {
**tmp = *ptr;
s = "";
for (int k = 0; k < 15; k++)
{
s += **tmp;
(tmp)++;
}
cout << s << endl;
ptr++;
}
}
*を参照してください? (int j = 0; j!= 15; ++ j){foo(puzzleArray [i] [j]); for(int i = 0; i!= 15; ++ i) (int i = 0; i!= 15; ++ i){foo(puzzleArray [i] [j]);}}}および 'for(int j = 0; j!= 15; ++ j) }} 'は両方向であなたの行列をトラバースすることができます。 – Jarod42
"tmpがカラムの終わりに達した後、毎回ptrをtmpに割り当てるようにしています。" 'tmp'には決して割り当てません。 forループの最初の行は、 'tmp'が指し示す最初のポインタが指すcharに代入します。 –
また、可能ならばポインタへのポインタの使用は避けてください。 'std :: array'または' std :: vector'を見てください。彼らはどちらも理由を考えるのがはるかに簡単です。 –