gpt4 book ai didi

c++ - 骑士巡逻失误

转载 作者:行者123 更新时间:2023-11-28 05:10:44 27 4
gpt4 key购买 nike

我正在学习 C++,我的代码有我不知道的错误?

骑士去巡逻 //在这里输入代码

#include <iostream>
#include <stdio.h>
#include <conio.h>

using namespace std;

#define maxn 10

void ThuNuocDiTiepTheo(int i, int x, int y, int *q);
void InBanCo(int n);
void XoaBanCo(int n);

int BanCo[maxn][maxn];
int dx[8] = { 2,1,-1,-2,-2,-1,1,2 };
int dy[8] = { -1,-2,-2,-1,1,2,2,1 };
int n = 8;


void ThuNuocDiTiepTheo(int i, int x, int y, int *q) {
int u, v, *q1;
int k = 0;

do {
*q1 = 0;
u = x + dx[k];
v = y + dy[k];

if ((u >= 0) && (u < n) && (v >= 0) && (v < n) && (BanCo[u][v] = 0))
{
BanCo[u][v] = i;
if (i < n*n) {
ThuNuocDiTiepTheo(i+1,x,y,q1);
if (*q1 == 0) {
BanCo[u][v] = 0;
}
else {
*q1 = 1;
}
}
k = k + 1;
}

} while ((*q1 == 0) && (k < 8));

*q = *q1;
}

void XoaBanCo(int n) {
for (int i = 0; i < n - 1;i++) {
for (int j = 0; j < n - 1;j++) {
BanCo[i][j] = 0;
}
}
}

void InBanCo(int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - 1; j++) {
if (BanCo[i][j] < 10) {
cout << " " << BanCo[i][j];
}
else {
cout << " " << BanCo[i][j];
}

}
cout << "\n";
}
}

void main() {
int *q = 0;
cout << "Nhap vao kich thuoc ban co: ";
cin >> n; cout << "\n";
XoaBanCo(n);
cout << "\n";
BanCo[0][0] = 1;
ThuNuocDiTiepTheo(2,0,0,q);
cout << "In ra ban co: ";
InBanCo(n);

system("pause");
}

这是错误的

Severity Code Description Project File Line Suppression State Error C4700 uninitialized local variable 'q1' used

最佳答案

你的问题在这里:

void ThuNuocDiTiepTheo(int i, int x, int y, int *q) {
int u, v, *q1;
int k = 0;

do {
*q1 = 0;

你正在声明一个指针 q1,但它指向一些随机内存,因为你还没有初始化它。

*q1 = 0; 行将 0 写入此随机内存位置。

您需要为该整数分配内存,然后使用 new 释放它。和 delete运营商。

请注意,像这样管理内存不是一个好主意,因为有更好、更安全的方法来做事。

关于c++ - 骑士巡逻失误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43560269/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com