【问题标题】:Access an element of a 2d dynamic array--c++访问二维动态数组的元素--c++
【发布时间】:2023-03-09 20:56:01
【问题描述】:

我创建了一个动态数组。

typedef float* DynamicMatrix[MAT_SIZE];
DynamicMatrix matDyn;
// allocate rows and initialize to 0
    for (r = 0; r < MAT_SIZE; r++) {
        matDyn[r] = new float[MAT_SIZE];
        for (c = 0; c < MAT_SIZE; c++) {
            (matDyn[r])[c] = 0; // IS THIS CORRECT???
        }
    }

整个想法是我创建一个指针数组,这是我正在创建的矩阵的脊椎。该脊柱是矩阵的最左侧垂直部分。该数组的每一行都将指向另一个浮点数组,因此使其成为动态二维数组。 我不确定如何访问此矩阵的元素。请告诉我怎么做。

【问题讨论】:

  • 为什么不使用std::vectorboost::multi_array
  • 我正在为一个需要我以这种方式使用动态数组的分配创建这个
  • matDyn[r][c] = 0;也不错
  • DynamicMatrix 是否对operator[] 有过载?

标签: c++ arrays dynamic multidimensional-array


【解决方案1】:

您可以像访问“普通”矩阵一样访问它:

matDyn[r][c].

【讨论】:

  • 当我使用同样的方法设置元素时,我得到一个分段错误 11.
【解决方案2】:

你可以通过 matDyn[r][c] 来访问它

我的错误是稍后在我的程序中(未显示),我试图设置 matDyn[MAT_SIZE][MAT_SIZE] 这是不可能的(它只能是 matDyn[MAT_SIZE-1][MAT_SIZE-1])这就是我收到分段错误的原因。

【讨论】:

    猜你喜欢
    • 2019-08-03
    • 2014-11-13
    • 1970-01-01
    • 2017-04-13
    • 1970-01-01
    • 2011-10-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多