C &引用;请求加入非结构或联盟的成员”;再一次
很抱歉,如果我问了一个以前做过很多次的问题,但我没有找到解决方案 我有这个typedef结构C &引用;请求加入非结构或联盟的成员”;再一次,c,C,很抱歉,如果我问了一个以前做过很多次的问题,但我没有找到解决方案 我有这个typedef结构 typedef struct { int matrix[row][col]; }Position; 我创建了一个变量 Position park[weeks]; 然后我在子程序中调用它 void foo(struct Position *park[weeks]...) 然后 park[s].matrix[i][j]=car
typedef struct
{
int matrix[row][col];
}Position;
我创建了一个变量
Position park[weeks];
然后我在子程序中调用它
void foo(struct Position *park[weeks]...)
然后
park[s].matrix[i][j]=car[k].id;
我在上面这行有“请求等”错误。我做错了什么?
对不起,我的英语不好。只需删除you foo中的*即可。那么一切都会好起来的
void foo( Position *park[weeks]...)
==>
void foo(Position park[weeks]...)
或
像这样:
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 struct应该放在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("%d\n",park[1].matrix[1][1]);
return 0;
}
只需删除you foo中的*即可。那么一切都会好起来的
void foo( Position *park[weeks]...)
==>
void foo(Position park[weeks]...)
或
像这样:
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 struct应该放在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("%d\n",park[1].matrix[1][1]);
return 0;
}
改变
到
您已将parks
声明为指向Position
的指针数组,因此必须使用运算符->
访问矩阵
成员
或者,你也可以写作
(*park[s]).matrix[i][j]=car[k].id;
但是->
操作符有点干净。更改
park[s].matrix[i][j]=car[k].id;
到
您已将parks
声明为指向Position
的指针数组,因此必须使用运算符->
访问矩阵
成员
或者,你也可以写作
(*park[s]).matrix[i][j]=car[k].id;
但是
->
操作符稍微干净了一点。它会给出任何错误吗?你为什么不试试?什么是car[k]。id
Yes,在标题中给出错误!car[k].id是一个变量,问题不在这里阅读此答案:注意:void foo(struct Position*park[weeks])
应该是void foo(Position*park[weeks])
不需要使用struct
car也是一个名为id的结构数组。它是否给出了任何错误?你为什么不试试?什么是car[k]。id
Yes,在标题中给出错误!car[k].id是一个变量,问题不在这里阅读此答案:注意:void foo(struct Position*park[weeks])
应该是void foo(Position*park[weeks])
不需要使用struct
car也是一个名为id的结构数组。已经尝试过了,给出了错误“取消引用指向不完整类型的指针“@user2699575我想你需要删除你foo
中的*
,如果你想使用变量park
@user2699575:struct Position
和Position
是C中的两种不同类型,而前者在你的代码中并不存在。你好@LidongGuo。”。如果我删除struct,我会得到错误“unknown type name”,我想这是因为类型的声明在main中,并且不全局可见。问题是,在类型的声明中,我必须放入在运行时计算的两个变量,为此,我不能在main之外声明新的类型结构。@FabriNeral您也可以尝试将foo放入main。已经尝试过了,给了我错误“取消引用指向不完整类型的指针”@user2699575我想你需要删除你foo
中的*
,如果你想使用变量park
@user2699575:struct Position
和Position
在C中是两种不同的类型,前者在你的代码中不存在。你好@LidongGuo。如果我删除struct,我会得到错误“unknown type name”,我想这是因为类型的声明在main中,并且不全局可见。问题是,在类型的声明中,我必须放入一些在运行时计算过的变量,因此我不能在main之外声明新的类型struct。@FabriNeral您也可以尝试将foo放入main中。还要删除foo()定义中的'struct'还要删除foo()定义中的'struct'