我是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数组。
答案 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::vector
或std::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;
}