C ++填充二维数组[重复]
Posted
技术标签:
【中文标题】C ++填充二维数组[重复]【英文标题】:C++ fill 2D array [duplicate] 【发布时间】:2014-12-23 02:13:00 【问题描述】:我是 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;
但是这段代码抛出了异常。请帮我填充二维数组。
【问题讨论】:
你遇到了什么异常? 一定要用数组吗?我强烈建议使用vector<vector<int>>
或至少array<array<int>>
而不是原始数组。
你的 new 只创建一个指针数组。您仍然需要自己分配整数(更多新)。最好还是使用矢量。
【参考方案1】:
您错过了分配:
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
。
【讨论】:
【参考方案2】:试试下面的
#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;
【讨论】:
以上是关于C ++填充二维数组[重复]的主要内容,如果未能解决你的问题,请参考以下文章