我正在使用一个指向类对象的指针数组来跟踪100个类型为ant的对象以及它们在网格上的位置。我以不同的方式使用这段代码与不同的对象等,但它们遵循这种模式。问题是无论我拿出哪个部分,我都会遇到段错误。在指针设置为指向对象后,从指针调用成员函数:
grid_ant [i] [j] - > move(grid_now,grid_next,grid_ant,i,j)
ant *grid_ant[H][W]; //initialize array of pointers
//create 100 ant objects in random places on a grid
void initiate_ants(ant *grid_ant[H][W], char grid_now[H][W]){
for(int i = 0; i < ANTNUM; i++){
int x;
int y;
do{
x = (rand() % W);
y = (rand() % H);
}
while(grid_now[y][x] != '-');
grid_ant[y][x] = new ant();
grid_now[y][x] = 'O';
}
}
//member function from class ant
void move(char grid_now[H][W], char grid_next[H][W],
ant* grid_ant[H][W], int i, int j){
int rand_dir == (rand() % 4);
//check above
if((rand_dir = 0) && (i > 0)){
if(grid_now[i - 1][j] = '-'){
grid_next[i][j] = '-';
grid_next[i - 1][j] = 'O';
grid_ant[i - 1][j] = grid_ant[i][j];
grid_ant[i][j] = NULL;
}
我已经尝试过很多东西但没有得到任何东西,但我知道问题必须在某些地方重新分配指针或指针数组本身。任何帮助将非常感激。提前谢谢你们的时间和帮助。