0

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

void foo (int *StructArrayAddress)

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

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

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

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

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

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:我可能刚刚意识到你们一直试图向我传达我遗漏的一些东西:参数中是否需要对我的本地结构的引用,以便我将结构的格式传回时知道?

4

1 回答 1

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


}
于 2013-01-09T01:25:41.993 回答