目前我想在c ++中做二维数组,这可能有不同的第二列大小。这是我的代码:
int **testZadanie;
testZadanie = new int*[testy];
...
for (int i = 0; i<testy; i++)
{
cin >> liczbaLakomczuchow >> liczbaCiastek;
testZadanie[i] = new int[liczbaLakomczuchow];
for (int j = 0; j<liczbaLakomczuchow; j++)
{
cin >> czasJedzenia;
//testZadanie[i, j] = czasJedzenia; this not works
*testZadanie[i, j] = czasJedzenia;
}
}
但是当我想为每列添加值时,我得到了异常。所以我不确定我是否可以做到这一点我真正想做的事情? (为每行声明动态列元素并为行中的每个项目附加?)
答案 0 :(得分:1)
使用x[y][z]
代替x[y, z]
。
编写*x[y, z]
时,编译器会将其解释为x[z][0]
(这不是您想要的),因为:
a, b
是一个逗号运算符,它会计算两个操作数并返回第二个值。*a
相当于a[0]
。 此答案通常仅适用于内置类型。您可以为一个类重载 ,
,*
和[]
运算符,完全改变它们的行为。 子>
如果您不知道运算符重载是什么,请忽略此注释。