|
1
93
C并没有真正的多维数组,但是有几种方法可以模拟它们。将此类数组传递给函数的方式取决于模拟多维数据的方式: 1)使用数组。只有在编译时完全确定数组边界,或者编译器支持的情况下,才能使用此函数。 VLA's :
2)使用指向(动态分配)数组的指针数组(动态分配)。这通常在运行时才知道数组边界时使用。
3)使用一维数组并固定索引。这可以用于静态分配(固定大小)和动态分配的数组:
4)使用动态分配的VLA。与选项2相比,这种方法的一个优点是有一个单独的内存分配;另一个优点是由于不需要指针数组,所以所需的内存更少。
|
|
|
2
10
我不知道你所说的“数据不丢失”是什么意思。以下是将普通二维数组传递给函数的方法:
|
|
|
3
2
最简单的方法:传递可变长度的二维数组C++c++最干净的技术是:像一维数组一样传递2D数组,然后在函数内使用2D。
|
|
|
4
0
二维数组:
三维阵列:
4D阵列:
ND阵列:
|
|
|
5
-2
如果编译器不支持VLA,您可以通过简单的方式将二维数组作为int*与row和col传递。 在接收函数中,从二维数组索引中重新生成一维数组索引。
|
|
|
6
-3
|
|
|
John · 如何读取C中函数的参数字符串? 8 年前 |
|
|
sid_com · Perl 6:如何检查“new”中的无效参数? 8 年前 |
|
|
Gamma · 如何将提升窗体的QSPINBOKS值传递到主窗口 8 年前 |
|
Matthias · Python:类型化方法参数 8 年前 |