从结构数组返回元素

时间:2013-10-30 07:23:22

标签: c

我需要从结构数组中返回一个元素。我得到错误,所以我想知道如何做到这一点:

-(struct Point3D)getMyColor
{
    struct Point3D
    {
        int x;
        int y;
        int z;
    };
 struct Point3D points[15] =
    {
        {204, 74, 110},
        {118, 56, 198},
        {175, 122, 231}, // I WANT TO RETURN THIS ONE TO THE CALLER
        {3, 197, 47},
        ....

    }

 return  WHAT?    // (points[4] give error)
}

3 个答案:

答案 0 :(得分:2)

最大的问题是你定义了函数内部的结构,这意味着它无法从外部使用它。

首先将结构定义移动到调用者可以使用它的地方,然后按照其他答案的建议。


顺便说一句,您的代码中也有未定义的行为。您声明数组points包含两个结构,但使用 four 对其进行初始化,从而覆盖编译器为该数组分配的空间。

答案 1 :(得分:0)

你应该返回第三个元素,即points[2] ...

答案 2 :(得分:0)

return points[4];

给你一个错误,因为你试图访问索引4上的项目,而你的项目有索引0,1,2和3.所以你想要

return points[2];