C ++填充2D数组

时间:2014-10-27 19:28:41

标签: c++

我是Java程序员。我试图在Win32项目中填充数组

int **Data::matrixInitialize()
{
    int** MX = new int*[n];
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            MX[i][j] = 1;
        }
    }
    return MX;
}

但是这段代码抛出了一个例子。请帮我填写2D数组。

2 个答案:

答案 0 :(得分:4)

你错过了一个分配:

int **Data::matrixInitialize()
{
    int** MX = new int*[n];
    for (int i = 0; i < n; i++)
    {
        MX[i] = new int[n]; // Missing line
        for (int j = 0; j < n; j++)
        {
            MX[i][j] = 1;
        }
    }
    return MX;
}

但最好使用std::vectorstd::array

答案 1 :(得分:1)

尝试以下

#include <algorithm>

//...

int **Data::matrixInitialize()
{
    int** MX = new int*[n];

    for ( int i = 0; i < n; i++ )
    {
        MX[i] = new int[n];
        std::fill_n( MX[i], n, 1 );
    }

    return MX;
}