问题遇到的现象和发生背景
想写一个三子棋
问题相关代码,请勿粘贴截图
#define _CRT_SECURE_NO_WARNINGS 1
#include "game.h"
//棋盘大小
//行
#define ROW 3
//列
#define COL 3
//游戏标题
void title()
{
printf("******************************************************\n");
printf("*******1.开始游戏 2.游戏说明 0.结束游戏*******\n");
printf("******************************************************\n");
return 0;
}
//游戏参数
void game()
{
char size[ROW][COL] = { 0 };
New(size);
ini(size);
play(size);
}
//棋盘初始化
void New(char size[ROW][COL])
{
int i = 0;
for (;i <=ROW; i++)
{
int j = 0;
for (; j <=COL; j++)
{
size[i][j] = ' ';
}
}
}
//打印棋盘
void ini(char size[ROW][COL])
{
int i = 0;
for (i = 1; i <= ROW; i++)
{
int j = 0;
for (j = 1; j <= COL; j++)
{
printf(" %c ",size[i][j]);
if (j < COL)
printf("|");
}
printf("\n");
for (j = 1; j <= COL; j++)
{
if (i < ROW)
{
printf("---");
if (j < COL)
printf("|");
}
}
printf("\n");
}
}
void play(char size[ROW][COL])
{
playerGo(size);
ini(size);
//AIGo(size);
//ini(size);
}
void playerGo(char size[ROW][COL])
{
int x = 0;
int y = 0;
printf("玩家先手\n");
while(1)
{
printf("请输入要落子的坐标:>");
scanf("%d%d", &x, &y);
if (x >=1 && x <= ROW && y >=1 && y <=COL)
{
if (size[x][y] == ' ')
{
size[x][y] = '*';
break;
}
else
printf("你不能在这里落子\n");
}
else
{
printf("地址非法,请重新输入\n");
}
}
}
运行结果及报错内容
已引发异常 Run-Time Check Failure #2 - Stack around the variable 'size' was corrupted.
我的解答思路和尝试过的方法
毫无头绪,估计是越界了但我不会解决
我想要达到的结果
希望能得到解决方案和分析