2015-07-28 477 views
-1

我開始學習C++並遇到一個錯誤。 我只是創建一個產生10x10矩陣的類,將整數0到99放入矩陣並打印出來。然而,它彈出一個堆棧錯誤,其中一個值爲93的值變爲0.我不知道它的意思。謝謝您的回答。運行時檢查失敗#2 - 圍繞變量「A」的堆棧已損壞。需要的解決方案

//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; 
} 
+2

數組索引從0開始。'_2dmatrix [i + 1] [j + 1]'這是通過數組的邊界。 – gandgandi

回答

0

C++中的數組是從零開始的。簡單地將i+1更改爲ij+1j

+0

我得到了代碼工作,謝謝。 – goofy

相關問題