从二维C ++数组中提取一行

时间:2013-09-11 09:27:30

标签: c++ arrays

我有一个名为resolvedStress的二维数组,它可以占用m x n行和列。我想定义一个名为criticalData的新变量,它是一个仅包含一行resolvedStress的一维数组。如果我想将第4行分配给criticalData,编写是否正确:

float* criticalData = &resolvedStress[4 * n];

我是C ++的新手,所以我还不太自信!

3 个答案:

答案 0 :(得分:1)

数组本身是一个静态指针,不需要使用'&',再次如你所说wana指向第4行所以它将是3而不是4,因为数组索引从0开始。

float* criticalData = resolvedStress[3];

答案 1 :(得分:0)

假设您的数组按如下方式组织:

[ row0 | row1 | row2 | .... ]

也就是说,一个1D数组按顺序包含矩阵的行,然后&resolvedStress[4 * n]将是row4的指针 - 实际上是数组的第5行(得爱零索引)

答案 2 :(得分:0)

如果要访问m X n数组的第四行,可以访问每一行

  resolvedStress[0] will point to first row of the 2D array.
  resolvedStress[1] will point to second row of the 2D array.

  ...
  resolvedStress[m-1] will point to mth row of the 2D array.

对于你的情况,它将是

   float* criticalData = resolvedStress[3];