首页 > 解决方案 > 为什么数组取随机值?

问题描述

我在我的数组中赋值,但它随机取不同的值。为什么会这样?

#include<iostream>
using namespace std;

int main(){
int n;
cin>>n;
int arr[n][n];

for(int i=0;i<n;i++){
    for (int j= 0; j < n; j++){
    cin>>arr[i][j];
    }
}
int sum,count= 0;

for(int i=0;i<n;i++){
    for(int j=0;j<n;j++){
        arr[i-1][j]=0;
        arr[i][j-1]=0;
        arr[n+1][j]=0;
        arr[i][n+1]=0;

        cout<<arr[i][j+1]<<" "<<arr[i][j-1]<<" "<<arr[i+1][j]<<" "<<arr[i-1][j]<<"\n";
        //sum = arr[i][j+1]+arr[i][j-1]+arr[i+1][j]+arr[i-1][j];

        //cout<<sum<<" ";
    }
}

}

输入
2
1 2
3 4

输出
2 4218949 3 1878280832
3 1 0 4218949
0 0 1998471964 1
1998471964 3 0 0

标签: c++arrays

解决方案


您正在访问数组范围之外的内容。如果数组具有大小n,则您无法访问arr[n+1](或arr[n]两者之一)并且您无法访问arr[-1]. 唯一合法的访问是arr[0], arr[1], ..., arr[n-2], arr[n-1].

这就是为什么你得到随机值,


推荐阅读