我在互联网上找到的信息没有得到很好的解释。我想知道如何实现双精度浮点数的二维数组。我希望数组的维度是可变的,所以如果我说.double 100,那么我浪费了大量的内存,因为这可能不是数组的大小,例如可能是5 x 5.我是否必须使用堆栈来解决这个问题?或者我怎么能去做呢?此外,如果有人可以解释如何有效地填充数组,那将非常感激!
答案 0 :(得分:2)
您可以使用row-major order将任何矩形2D数组实现为一维数组,唯一不同的是计算元素的地址。
例如,如果您有一个3×5的double
数组,并且想要访问元素array[x][y]
,则可以使用以下公式计算其地址:
address of array[x][y] = base of array + 8 * (5 * x + y)
其中base of array
是array
或array[0][0]
的基地址,8
是元素sizeof(double)
的大小,5
是列数。