C 向for循环内的数组添加元素
我想通过一个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
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();
}