运行-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
。
开始学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
。