bool horizontal_Check1(string** board){
for(int row=7; row>=0; row--){
for(int col=0; col<=7; col++){
if(board[row][col]=="|X|"&&board[row][col+1]=="|X|"&&board[row][col+2]=="|X|"&&board[row][col+3]=="|X|"){
return 1;
}
}
}
return 0;}
当我尝试构建此函数时,它显示以下错误:
错误C2664:&#39; horizontal_Check1&#39; :无法从&#39; std :: string&#39;转换参数1到&#39; std :: string **&#39;
没有可用于执行此转换的用户定义转换运算符,或者无法调用运算符
答案 0 :(得分:1)
我猜这个错误来自你调用horizontal_Check1
函数的地方。也许你只传递了一个string
实例,而不是它的双指针?
string str = "random string";
horizontal_Check(str); // error
调用代码应该是这样的
string str[...][...];
// need conversion from array `string[...][...]` to pointer `string **`
horizontal_Check(&str[0]);
您打算将二维字符串数组传递给C风格的函数。但是对于C ++,我会这样做,
bool horizontal_Check1(std::vector<std::vector<std::string>>& board)
{
...
}