C/C++关于在函数中使用数组的问题

代码如下:

char brr[1][1]={1};
bool solve(int X,int Y,char *arr){
  brr[X][Y]='*';
  arr[X][Y]='*'; //错误:invalid types 'char[int]' for array subscript
}
int main()
{

    return 0;
}

我想把数组名作为实参,指针或者数组名作为形参,但是为什么brr不会报错,而arr会报错呢?如果我想在以上函数中对传入的arr进行修改,应该怎么做才可以呢?

阅读 4.7k
2 个回答
bool solve(int X,int Y,char **arr)

二维数组**arr

这里定义就不一样。
char brr[1][1]是二维数组,char *arr是字符指针,你想使用arr[x][y]这种形式要申明成char **arr才行

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题