我有这个结构数组,我试图传递给C程序中的另一个函数(设置)。在主函数中创建并填充该数组。我将其设置为全局,但在程序启动之前我不知道数组的大小,因为它从命令行args获取输入。设置功能将在main中运行。由于数组是在setup()
主要运行之前填充的,因此如何访问array1
中setup()
的内容。
本质上:
void setup()
{
//Wanting to access array in here
}
int main(int argc, char *argv[])
{
struct examples array1[count-2];
// Calculation occurs here and fills array1
setup();
return 0;
}
答案 0 :(得分:2)
您可以在setup
函数中将指向结构的指针与可选的size参数一起传递。
void setup(struct examples *arr, int size)
{
..
}
// in main
setup(array1, count-2);
答案 1 :(得分:2)
您需要将数组的指针传递给函数,指针是数据在内存中的位置,对于数组,您只需要传递数组的名称即可
void setup(struct examples* array, int count)
{
int i=0;
for(;i<count;i++) {
//Do something
array[i]
}
//Wanting to access array in here
}
int main(int argc, char *argv[])
{
struct examples array1[count-2];
// Calculation occurs here and fills array1
setup(array1,count-2);
return 0;
}
我还传递了数组的大小以帮助在函数中进行操作
答案 2 :(得分:0)
只需将数组作为参数发送给setup()方法。
setup(array1); //in main function
void setup(struct array1[])
{
//process array1 here
}