我知道这是一个常见问题,但我仍然设法找到解决方案。
我创建了一个名为位置路径的结构路径数组location[numLevels*levelSize];
我还使用了一堆名为 start 的路径。
问题是将数组中的正确位置传递给一个函数,让它创建一个新的路径来放入数组,而不是把它发回。
bool moveLocationStack(const vector <vector<path> > &spaceStation,const int x,const int y,path *square){
char c=spaceStation.at(y).at(x).type;
if(c!='#'){
if(!spaceStation.at(y).at(x).visit and !spaceStation.at(y).at(x).inPath)
square->type=spaceStation.at(y).at(x).type;
square->type=spaceStation.at(y).at(x).visit;
square->type=spaceStation.at(y).at(x).inPath;
square->type=spaceStation.at(y).at(x).level;
return 1;
}
return 0;
}
指针正方形应该指向我尝试的函数调用发送给它的数组的下一个位置:
if(moveLocationStack(spaceStation,possibleX,possibleY,location[currentLocation])){
}
发送我想要指向的特定数组部分存在问题,该部分由代码 currentLocation 中其他地方的变量索引。如果我只写位置它可以工作,但我很确定它不会在每次调用它时指向数组中的下一个可用空间,即使我增加 currentLocations 也是如此。
有什么方法可以解释这一点,以便我能理解错误?