将Struct复制到函数中作为指针参数接收的结构数组

时间:2013-01-08 22:02:15

标签: c

我有一个函数,它将一个结构数组作为参数:

void foo (int *StructArrayAddress)

在函数中,我构建了一个看起来像这样的新结构

struct
{
    int a;
    int b;
    char c[10];
}myStruct;  

我想要做的是根据指向我作为参数接收的数组的指针将该结构复制到我的结构数组中。没有运气的语法,或者我错过了什么。任何人都可以建议吗? 谢谢!

编辑:我不确定我是否正确解释了自己,因为我不认为此处发布的解决方案是我想要做的。澄清一下:在我的函数之外有一些结构数组。我在结构数组中收到正确的struct元素的地址作为我的函数的参数。假设来电者已经照顾好我的正确地址;我根本没有索引它。

然后,我从其他一些数据本地构建一个结构。我现在想要将我在本地构建的这个结构复制到我作为参数接收的数组中的结构。

void foo (int *StructArrayAddress)
{
    struct
    {
        int a;
        int b;
        char c[10];
    }myStruct;

    a = 5;
    b = 10;
    c = {1,2,3,4,5,6,7,8,9,10};

    //Copy local struct myStruct to location StructArrayAddress here
    StructArrayAddress = myStruct; //Something like this but I have the syntax wrong
}

我希望这更有意义。

EDIT2:我可能刚刚意识到你们一直试图向我传达我遗失的东西:在某种程度上是对参数所需的本地结构的引用,以便我传回结构的格式已知?

1 个答案:

答案 0 :(得分:0)

你的功能定义应该是

void foo (myStruct *StructArrayAddress, int index)
{
     myStruct x;
     x.a = 1;
     x.b = 2;
     strncpy(x.c, "Test", 9);

     /* Now copy this struct to the array of structs at index specified by second argument */

     memcpy((StructArrayAddress + index), &x, sizeof(myStruct));


}