我不能在函数中使用char

时间:2015-02-08 21:46:42

标签: c++

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

请帮助, 提前致谢

1 个答案:

答案 0 :(得分:0)

您收到编译错误的原因是因为您尝试调用函数ram的{​​{1}}类型不是potezn想要的类型。

仔细查看potezn

其类型必须为ram,而不是char*[100]

您可以明确声明char(*)[((unsigned int)((int)m)]]的长度,也可以将ram更改为char ram1[][100]
(另请考虑使用char * ram1. {{1} }是一个自动管理其长度的数组。)

std::vector.