我有一个 c 语言代码,如果你在其中放置断点并手动遍历它,它运行良好,但如果我们松开断点并让它自动运行,它就会崩溃。
这意味着什么?
这是功能:
void play(int map[length][length])
{
FILE* matrix;
struct Coordinate startPoint;
struct Coordinate endPoint;
char buffer[200];
int lineNumber;
int run = 1;
int direction;
int gaps;
int letter;
int playerX;
int playerY;
int killerX;
int killerY;
startPoint.steps = -1;
printf("enter X and Y of player");
scanf("%d,%d", &playerX, &playerY);
printf("enter X and Y of killer");
scanf("%d,%d", &killerX, &killerY);
while (run)
{
letter = 0;
printf("enter direction [2]=down, [4]=left, [6]=right, [8]=up");
scanf("%d", &direction);
switch (direction)
{
case 2: playerX++; break;
case 4: playerY--; break;
case 6: playerY++; break;
case 8: playerX--; break;
}
startPoint.x = killerX;
startPoint.y = killerY;
endPoint.x = playerX;
endPoint.y = playerY;
root = insertDataToTree(root, startPoint.x, startPoint.y, map, startPoint.steps);
findShortestPath(root, startPoint, endPoint);
matrix = fopen("space.txt", "r");
for (lineNumber = 0; lineNumber < 15; lineNumber++)
{
fgets(buffer, 200, matrix);
}
for (gaps = 0; gaps < 4; letter++)
{
if (buffer[letter] == ' ')
{
gaps++;
}
}
fclose(matrix);
switch (buffer[letter + 1])
{
case 'd': killerY++; break;
case 'l': killerX--; break;
case 'r': killerX++; break;
case 'u': killerY--; break;
}
if (playerX == killerX && playerY == killerY)
{
run = 0;
}
}
}
这是我得到的错误:项目 2.exe 中 0x779615de 处的未处理异常:0xC0000005:访问冲突读取位置 0x00440000。
谢谢