运行-Time Check Failure #2 - 变量 'A' 周围的堆栈已损坏。需要解决方案

Run-Time Check Failure #2 - Stack around the variable 'A' was corrupted. Solution needed

开始学C++,遇到一个错误。 我只是创建一个 class 生成一个 10x10 矩阵,将整数 0 到 99 放入矩阵并打印出来。但是,它弹出一个堆栈错误,其中一个应该是 93 的值变为 0。我对此一无所知。谢谢你的回答。

//myclass.h
#pragma once

class Matrix {
private:
    int _2dmatrix [10][10];
public:
    Matrix ();
    ~Matrix ();
    void printMatrix ();
};

// myclass.cpp
#include "myclass.h"
#include <iostream>
using namespace std;

Matrix::Matrix () {
    for (int i = 0; i < 10; i++)
        for (int j = 0; j < 10; j++) {
            _2dmatrix[i+1][j+1] =i*10+j;
        }
}

Matrix::~Matrix () {}

void Matrix::printMatrix () {
    for (int i = 0; i < 10; i++) {
        for (int j = 0; j < 10; j++) {
            cout << _2dmatrix[i+1][j+1] << "\t";
        }
        cout << "\n";
    }
}

//source.cpp
#include <iostream>
#include "myclass.h"
using namespace std;

int main() {
    Matrix A;
    A.printMatrix();
    return 0;
}

C++ 中的数组是从零开始的。只需将 i+1 更改为 i 并将 j+1 更改为 j