01/10/2018, 12:26

Mảng 2 chiều dùng con trỏ trong c++, sai ở đâu ạ?

em viết 1 hàm là nhập vào mảng và 1 hàm in ra mảng như sau :

    int** inputMatrix(int nRows, int nCols)
    {
        int **matrix =new int *[nRows];
        for (int j=0; j< nCols; j++)
        {
            matrix[j] = new int [nCols];
        }
        for (int i=0; i<nRows; i++)
        {
            for (int j=0; j<nCols; j++)
            {
                cin >> matrix[i][j];
            }
        }
        return matrix;
    }
    void printMatrix(int** matrix, int nRows, int nCols)
    {
        for (int i=0; i<nRows; i++)
        {
            for (int j=0; j<nCols; j++)
            {
                cout <<  matrix[i][j] << " ";
            }
            cout << endl;
        }
    }

em thử test là

3 2
-1 -2
-3 -4
-5 -6

thì nó báo lỗi, vậy cho em hỏi lỗi ở đâu và sao lại lỗi ạ ? em cảm ơn nhiều ạ ! à như em viết thế này thì cho em hỏi em bị hổng kiến thức ở đâu mọi người chỉ giúp em để em xem lại ạ !!

Tao Không Ngu. viết 14:31 ngày 01/10/2018

Hi Nguyễn Dương.

  1. Bạn bị đau thì cũng nói bạn bị đau ở đâu để mọi người còn tìm nguyên nhân chứ. Show màn hình lỗi, nếu chạy debug thì show màn hình break lên.
  2. Bạn hổng kiến thức phân tích vấn đề.
rogp10 viết 14:33 ngày 01/10/2018

Có một dòng thớt duyệt sai cận nên bị văng lỗi.

HK boy viết 14:38 ngày 01/10/2018
int **matrix =new int *[nRows];
for (int j=0; j< nCols; j++)
{
    matrix[j] = new int [nCols];
}

Nhìn kĩ đoạn này bạn nhé.

Nguyễn Dương viết 14:26 ngày 01/10/2018

lỗi này ạ @@

Nguyễn Dương viết 14:36 ngày 01/10/2018

à em hiểu rồi ạ !!!

Nguyễn Dương viết 14:39 ngày 01/10/2018

đúng rồi, em hiểu sai ở đâu rồi ạ ! em cảm ơn ạ !!

Bài liên quan
0