在中午
struct Point
{
int x;
int y;
};
Point *p2;//接受notdanger返回值
for (DIR dir = 上右; dir < 8; dir = (DIR)(dir+1))//不危险,将新点和新棋盘传到下一次递归函数
{
if (p2 = notdanger(chess, p, dir))
{
printf("正在计算\n");
Knight(chess2, *p2, num + 1);
}
}
将p2指针解引用后传参进Knight函数
void Knight(Chess (*chess)[8], Point p, int num)//递归函数,num记录当前编号
调试发现,当传参进函数后
为什么会这样呢
Point p改为Point *p
Knight(chess2, *p2, num + 1);改成Knight(chess2, p2, num + 1);
void Knight(Chess (*chess)[8], Point p, int num)改成void Knight(Chess (chess)[8], Point p, int num)