【发布时间】:2012-07-30 16:42:01
【问题描述】:
我是编程新手,所以我想编写一个代码,让我输入一个二维数组(在我的例子中是一个矩阵),然后打印出来。
#include <iostream>
using namespace std;
void printArray( const int *array, int count )
{
for ( int i = 0; i < count; i++ )
cout << array[ i ] << " ";
cout << endl;
}
int main () {
int n;
cout<<"Please enter the length of your matrix : "<<endl;
cin>>n;
int * y=new int [n];
for (int w = 0; w <= n-1; w++ ) {
y[w] = new int [n];
cout<<"Insert the elements ";
for (int z = 0; z <= n-1; z++)
{
cin >>y [w][z];
}
}
printArray(y, n);
}
但是,我收到诸如“从 'int*' 到 'int' 的无效转换”和“数组下标的无效类型 int[int]”之类的错误。你能检查我的代码并指出我的缺陷吗?
谢谢
【问题讨论】:
-
@RyanGray 如果数组不是固定大小(它不是),那么它必须被更新。当然,应该使用
std::vector这样的结构来代替。 -
@RyanGray:使用
new[]是一种合法的创建数组的方式,和new不一样。 -
你需要使用双指针,你的数组 y 需要声明为 int ** y = new int* [n]
标签: c++ arrays multidimensional-array user-input