如何将结构数组从main传递到另一个函数

时间:2019-08-20 09:34:10

标签: c arrays

我有这个结构数组,我试图传递给C程序中的另一个函数(设置)。在主函数中创建并填充该数组。我将其设置为全局,但在程序启动之前我不知道数组的大小,因为它从命令行args获取输入。设置功能将在main中运行。由于数组是在setup()主要运行之前填充的,因此如何访问array1setup()的内容。

本质上:

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;
}

3 个答案:

答案 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
}