-1

構造体配列から 1 つの要素を返す必要があります。エラーが発生するので、その方法を知りたいです:

-(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)
}
4

3 に答える 3

2

最大の問題は、関数内で構造体を定義することです。つまり、関数の外から使用することはできません。

最初に構造定義を呼び出し元が使用できる場所に移動してから、他の回答のアドバイスに従ってください。


ちなみに、コードにも未定義の動作があります。2 つの構造体pointsを含むように配列を宣言しますが、 4で初期化するため、コンパイラによって配列に割り当てられたスペースが上書きされます。

于 2013-10-30T07:28:05.680 に答える
0
return points[4];

アイテムのインデックスが 0、1、2、3 のときにインデックス 4 のアイテムにアクセスしようとしているため、エラーが発生します。

return points[2];
于 2013-10-30T07:27:45.420 に答える