如何选择二维数组的第二列。 我有这个数组有大约30个值(LKT),从那里我有一个二维数组(ScaledValues)。该2维阵列的第2列将填充原始LKT阵列的缩放版本。
最初,ActiveArray变量指向LKT数组。但是,当我使用第一个LKT数组的缩放值填充ScaledValues中数组的第二列时,如何将ActiveArray移动到现在指向第二列作为我将使用的活动数组?即在我用所需的比例值填充第二列之后,我想使用这些值,我想使用ActiveArray变量来表示这个新列是活动数组。
我知道还有其他方法可以做到这一点,即我可以创建2个单独的单个数组,但我必须使用下面看到的格式。请协助。谢谢。
如果我需要让我的问题更清楚,请告诉我。
非常感谢你。
static const unsigned int LKT[30] = {
30, 29, 28, 27, 26, 25, 24, 23, 22,
21, 20, 19, 18, 17, 16, 15, 14, 13, 12,
11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0};
static unsigned int ScaledValues[30][2];
static volatile unsigned char ActiveArray = 0;
答案 0 :(得分:1)
反转ScaledValues数组声明:
unsigned int ScaledValues[2][30];
for (int i = 0; i < 30; i++) {
ScaledValues[0][i] = LKT[i];
ScaledValues[1][i] = scale(LKT[i]);
}
// Also need to make this a pointer
unsigned int * ActiveArray = ScaledValues[0]; // Original values
ActiveArray = ScaledValues[1]; // Scaled values
答案 1 :(得分:0)
操作此数组的更简单方法可以按照以下方式完成
首先定义应该是这样的
static unsigned int ScaledValues[2][30];
然后将LKT
复制到第一个line
(而不是column
)
memcpy(ScaledValues[0], LKT, 30*sizeof(unsigned int));
访问ScaledValues
数组的第二行是
ScaledValues[1]