使用二维数组与不同大小的第二行C++
问题描述:
目前,我正在做C++中的2d数组,它可以具有不同的第二列大小。这是我的代码:使用二维数组与不同大小的第二行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;
}
}
但是,当我想附加每列的值我得到异常。所以我不确定我是否可以做到这一点,我真的想要做什么? (声明每行的动态列元素并为每行添加行)?
答
使用x[y][z]
而不是x[y, z]
。
当你写*x[y, z]
,编译器将其解释为x[z][0]
(这是不是你想要的),因为:
-
a, b
是一个逗号操作符,其评估两个操作数和返回第二个值。 -
*a
相当于a[0]
。
这个答案一般仅适用于内建类型。您可以过载,
,*
和[]
运营商为一类,完全改变他们的行为。
如果你不知道什么运营商超载是,只是忽略这个说法。
该死的,太多的C#:)谢谢你的答案 – dawcza94