我有一个二维数组resolvedStress
,可以取m x n
行和列。我想定义一个名为的新变量criticalData
,它是一个一维数组,仅包含一行resolvedStress
. 如果我想将第 4 行分配给criticalData
,这样写是否正确:
float* criticalData = &resolvedStress[4 * n];
我是 C++ 新手,所以我还不是很自信!
数组本身就是一个静态指针,不需要使用'&',就像你说的那样,你想指向第 4 行,所以它是 3 而不是 4,因为数组索引从 0 开始。
float* criticalData = resolvedStress[3];
假设您的数组组织如下:
[ row0 | row1 | row2 | .... ]
也就是说,按顺序包含矩阵行的一维数组,然后&resolvedStress[4 * n]
将是一个指向的指针row4
- 这实际上是数组的第 5 行(必须喜欢零索引)。
如果要访问 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];