C++ C+中的访问错误+;for循环中的变量不在给定的限制内

C++ C+中的访问错误+;for循环中的变量不在给定的限制内,c++,C++,这是一种迭代字符矩阵以在字典文件中查找特定单词的方法。当前的问题是如下所示的错误访问。。。。造成这一现象的原因是d2=百万,l也等于数十万的值。。。。然而,我的极限显然还没有接近 void Puzzle:: algorithm2(){ int numberofwords = 0; for (int r = 0; r<Rows; r++) { for (int c = 0; c<Columns; c++){ for (int d1

这是一种迭代字符矩阵以在字典文件中查找特定单词的方法。当前的问题是如下所示的错误访问。。。。造成这一现象的原因是d2=百万,l也等于数十万的值。。。。然而,我的极限显然还没有接近

void Puzzle:: algorithm2(){
    int numberofwords = 0;
    for (int r = 0; r<Rows; r++) {
        for (int c = 0; c<Columns; c++){
            for (int d1 = -1; d1<=1; d1++){
                for (int d2 = -1; d2<=1; d2++){
                    //42 ~ 30(2)^0.5
                    for (int l = dictionary.getminlength(); l<30; l++) {
                        if (d1==d2==0){
                            continue;
                        }
                        else if ((r+(d1*l))>30||(c+(d2*l))>30||(c+(d2*l))<0||(r+(d1*l))<0){
                            break;
                        }
                        else{
                            string tempword = "";
                            for (int p = 0; p<l+1; p++) {
                                tempword[p] = TheBoard[r+(d1*p)][c+(d2*p)];//badacces
                                if(dictionary.BinarySearch(tempword)){
                                    cout << "Found " << tempword << " at (" << r << "," << c << ") to (" << r+d1*(int)tempword.length() << "," << c+d2*(int)tempword.length() << ")" << endl;
                                    numberofwords++;
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    cout << numberofwords << "words" << endl;
}
void Puzzle::algorithm2(){
int numberofwords=0;

for(int r=0;rw什么是
d1==d2==0
?为什么它在for()的内部循环,尽管d1和d2不应该在那里改变?d1和d2是在矩阵中搜索单词的方向…d1是行,d2是列。我不希望它们都是0,因为这是单词的开头。我认为@MM.表示表达式,而不是您的意图。您希望
d1==0&&d2==0
(很明显,它们在这一点上是相等的)。根据现在的情况,考虑子表达式
d2==0
为真意味着什么,以及该表达式的结果将如何与d1进行比较,即
d1==result