带有指向对象的数组的Segfault

时间:2014-03-11 04:20:28

标签: c++ class pointers multidimensional-array segmentation-fault

我正在使用一个指向类对象的指针数组来跟踪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;
        }

我已经尝试过很多东西但没有得到任何东西,但我知道问题必须在某些地方重新分配指针或指针数组本身。任何帮助将非常感激。提前谢谢你们的时间和帮助。

0 个答案:

没有答案