C 向for循环内的数组添加元素

C 向for循环内的数组添加元素,c,for-loop,C,For Loop,我想通过一个for循环来填充数组 假设我有: int8 myArray[30] = {0}; // Declaring and initializing an array which contains maximum 30 elements 将元素添加到for循环内的数组中: for (i = 0; i<5; i++) { myArray[0+(i*5)] = getNumberfromFunction1(); myArray[1+(i*5)] = getNumbe

我想通过一个for循环来填充数组

假设我有:

int8 myArray[30] = {0};  // Declaring and initializing an array which contains maximum 30 elements  
将元素添加到for循环内的数组中:

for (i = 0; i<5; i++)
{
    myArray[0+(i*5)] = getNumberfromFunction1();
    myArray[1+(i*5)] = getNumberfromFunction2();
    myArray[2+(i*5)] = getNumberfromFunction3();
    myArray[3+(i*5)] = getNumberfromFunction4();
    myArray[4+(i*5)] = getNumberfromFunction5();
    myArray[5+(i*5)] = getNumberfromFunction6();
}
当i=1时,问题开始:

而不是myArray[6],myArray[5]

foor循环中的第一个索引将始终被foor循环的最后一个索引覆盖


有什么建议吗?

您可以将
i
乘以6,而不是5。

for
循环的每次运行中,您将向数组添加六个值!因此,在随后的每次跑步中,您应该将“偏移”计数增加i*6(而不是像您所做的那样增加i*5):


for(i=0;i您正在模拟
C
中一维数组顶部的二维数组(但是,这两个数组在内存中是连续排列的)。 通过使用如下二维数组,可以实现相同的效果:

int array[5][6];

for (row = 0; row < 5; row++) {
    for (col = 0; col < 6; col++)
        array[row][col] = myFunc();
}
int array[5][6];

for (row = 0; row < 5; row++) {
    for (col = 0; col < 6; col++)
        array[row][col] = myFunc();
}
for (i = 0; i < 5; i++) {
    myArray[0+(i*6)] = getNumberfromFunction1();
    myArray[1+(i*6)] = getNumberfromFunction2();
    myArray[2+(i*6)] = getNumberfromFunction3();
    myArray[3+(i*6)] = getNumberfromFunction4();
    myArray[4+(i*6)] = getNumberfromFunction5();
    myArray[5+(i*6)] = getNumberfromFunction6();
}