不良访问C 错误

Bad Access C++ Error

本文关键字:错误 访问 不良      更新时间:2023-10-16

您能帮我解决错误的访问错误吗?这是代码:

#include <iostream>
using namespace std;
int main() {
    int t,tr=0;
    cin>>t;
while (tr<t) {
    int n;
    cin>>n;
    int distance=n;
    int number;
    number=n*n;
    int spiral[n][n];
    for (int i=0;i<n;i++) {
        for (int j=0; j<n; j++) {
            spiral[i][j]=0;
        }
    }
    for (int i=0; i<n;) {
        for (int j=0; j<n;) {
            spiral[i][j]=number;
            number=number-1;
            //cout<<"ij"<<endl;
            for (int k=0; k<distance; k++) {
                i++;
               spiral[i][j]=number;
                number--;
                //cout<<"k"<<endl;
            }
        }
    }
    for (int i=0; i<n; i++) {
        for (int j=0; j<n; j++) {
            cout<<spiral[i][j];
        }
        cout<<endl;
    }
    tr++;
}
return 0;
}

不良访问在

spiral[i][j]=number;

这是问题的链接,但这目前并不重要。我尝试了nszmobies,但它不起作用,所以我问你。这是C 。这是问题。

似乎您的循环中有错误。循环

for (int j=0; j<n;)

看起来是无限的,因为j变量没有变化。此外,

中的变量i
spiral[i][j]=number;

您的程序中可以更大或等于n。