bool potezn(int x,int y,int k,char c,char ram1[][100],bool segfault,int n,int m)
{
segfault=true;
if(c=='U' && x>=k){x=x-k;segfault=false;}
if(c=='D' && x+k<n){x=x+k;segfault=false;}
if(c=='L' && y>=k){y=y-k;segfault=false;}
if(c=='R' && y+k<m){y=y+k;segfault=false;}
if(ram1[x][y]=='.')ram1[x][y]='N';//zauzima polozaj ukoliko moze
return segfault;
}
segfault=potezn(x,y,q,c,ram,segfault,n,m);
这是我的代码,当我运行它时,我不断收到错误
d:\ dev的\开发-CPP \ segfault2.cpp
无法将参数
char (*)[((unsigned int)((int)m))]
的{{1}}转换为char (*)[100]
至5
请帮助, 提前致谢
答案 0 :(得分:0)
您收到编译错误的原因是因为您尝试调用函数ram
的{{1}}类型不是potezn
想要的类型。
仔细查看potezn
。
其类型必须为ram
,而不是char*[100]
。
您可以明确声明char(*)[((unsigned int)((int)m)]]
的长度,也可以将ram
更改为char ram1[][100]
(另请考虑使用char * ram1.
{{1} }是一个自动管理其长度的数组。)
std::vector.