Jak zmienić wskaźnik w funkcji?

Mam funkcję rekurencyjną w C i chcę, aby zwrócony wskaźnik struktury stał się nową strukturą w funkcji. Mam problem ze zwróconą strukturą, ponieważ nie zmienia.jest to struktura mojego kodu:

struct location_t{
   int x,y;
   location_t * next;
   int dir;
}

location_t * recursive_foo(location_t * loc, maze_t * m){

    int x = loc->x;
    int y = loc->y;
    int dir = loc->dir;

    loc->next = malloc(sizeof(location_t));
    location_t * temp = loc->next;

    if(m->map[--x][y] != '#' && dir != 0){
        temp->x = x;
        temp->y = y;
        temp->dir = 2;
        loc = recursive_foo(temp);
    }
    if(m->map[--x][y] != '#' && dir != 1){
        temp->x = x;
        temp->y = y;
        temp->dir = 3;
        loc = recursive_foo(temp);
    }
    if(m->map[--x][y] != '#' && dir != 2){
        temp->x = x;
        temp->y = y;
        temp->dir = 0;
        loc = recursive_foo(temp);
    }
    if(m->map[--x][y] != '#' && dir != 3){
        temp->x = x;
        temp->y = y;
        temp->dir = 1;
        loc = recursive_foo(temp);
    }

    return loc;

}   

Im problem ze zwróconą strukturą, ponieważ nie zmienia się.

Ma to na celu ułożenie tych struktur poprzez odniesienie do siebie nawzajem.

questionAnswers(1)

yourAnswerToTheQuestion