sk0*_*k01 2 c struct function call
我正试图制作一个"兰顿的蚂蚁计划".我已经定义了一个结构:
typedef struct Ant
{
int x;
int y;
int b;
}Ant;
Run Code Online (Sandbox Code Playgroud)
我有一个功能:
int st(Ant *ant, int len, char (*area)[len]);
Run Code Online (Sandbox Code Playgroud)
但是当我尝试在main函数中调用此函数时使用
int main()
{
[..... ]
char r[l][l];
Ant ant;
ant.x = 0;
ant.y = 0;
ant.b = 2;
st(Ant *ant, l, r);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:'Ant'之前的预期表达式.
我不知道问题出在哪里.有人知道什么是错的.我对编码很新.
谢谢
您的函数st将指针Ant作为第一个参数,因此您需要传递变量的地址ant(与*实际指示的内容一样ant).更改以下行:
st(Ant *ant, l, r);
Run Code Online (Sandbox Code Playgroud)
至 :
st(&ant, l, r);
Run Code Online (Sandbox Code Playgroud)
因为函数的原型是:
int st(Ant *ant, int len, char (*area)[len]);
Run Code Online (Sandbox Code Playgroud)
虽然您的原型不需要更改,但您也可以查看这个原型,以使您的代码更加自我记录:
int st(Ant *ant, int len, char area[len][len]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4827 次 |
| 最近记录: |