java - 这是多维数组中内存空间的冗余分配吗?

标签 java multidimensional-array

来自Matrix Chain Multiplication在维基百科的页面上,有一段 Java 代码:

public void matrixChainOrder(int[] p) {
    int n = p.length - 1;
    m = new int[n][n];
    s = new int[n][n];
    for (int i = 0; i < n; i++) {
        m[i] = new int[n];
        m[i][i] = 0;
        s[i] = new int[n];
    }
    ...

是不是 m = new int[n][n]; 已经在它的两个维度上分配了大小为 n 的内存空间,所以循环中的这一步 m[i] = new int[n]; 实际上是多余的,因为它所做的只是重新分配第二个维度?

最佳答案

是的,是的。

m[i] = new int[n]; 绝对是多余的。并且这一行似乎是 c 风格的伪代码的继承,其中这种初始化是必要的。

关于java - 这是多维数组中内存空间的冗余分配吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29137515/

相关文章:

c - 将用户确定的坐标分配给嵌套数组

java - 如何通过阅读代码确定 Java 源代码的所有运行时(但不是静态)依赖项?

java - 定时器功能未运行。 java

java - Microsoft Graph api 无效范围

c : How to initialize mulitdimensional arrays from other arrays?

c++ - 多维数组逻辑

algorithm - 归并排序的 K 路归并操作

javascript - 推送到多维数组

java - Android游戏从“后退”按钮和“菜单”按钮崩溃

java - 依赖倒置中的 'Inversion'是什么意思