再次"Request for member in something not a structure or union"



很抱歉,如果我问了一个以前已经做过很多次的问题,但我没有找到解决方案。

我有这个typedef结构

typedef struct                          
    {
    int matrix[row][col];
    }Position;

我创建了一个可变

Position park[weeks];

然后我在子程序中调用它

void foo(struct Position *park[weeks]...)

然后

park[s].matrix[i][j]=car[k].id;

我有"请求etc等"的错误,在上面的这一行。我做错了什么?对不起我的英语。

更改

park[s].matrix[i][j]=car[k].id;

park[s]->matrix[i][j]=car[k].id;

您已经将parks声明为指向Position指针的数组,因此必须使用运算符->来访问matrix成员。

或者,您可以编写

(*park[s]).matrix[i][j]=car[k].id;

但CCD_ 5算子稍微干净一些。

只需删除foo中的*即可。然后一切都会好起来的

void foo( Position *park[weeks]...)
==>
void foo(Position park[weeks]...)

void foo(Position *park,...)

像这样:

typedef struct                          
{
    int matrix[2][2];
}Position;

void foo(Position *park)
{
    park[1].matrix[1][1]=5;
}
int main()
{
    Position park[2];
    foo (park);
    return 0;
}

我不明白为什么typedef结构应该放在main中,但是,如果必须的话,也许你也可以把函数放在main:

int main()
{
    typedef struct                          
    {
    int matrix[2][2];
    }Position;
    void foo(Position *park)
    {
    Position *park1 = (Position *)park;
    park1[1].matrix[1][1]=5;
    };
    Position park[2];
    foo (park);
    printf("%dn",park[1].matrix[1][1]);
    return 0;
}

相关内容

最新更新