Buongiorno ho un problema di segmentation faul di questo codice e non riesco a trovarne la causa ho queste struct nel file .c:
struct poi_{
char* name;
int id;
};
struct street_{
bool street_exist;
bool* vehicle;
int* travel_time;
};
struct city_{
char* name;
poi* poi;
int n;
int max_dim;
street** streets;
};
faccio riferimento a queste struct tramite puntatori opachi nel .h:
typedef struct poi_* poi;
typedef struct street_* street;
typedef struct city_* city;
Il problema di segmentation fault si pone quando provo ad accedere agli elementi della matrice di adiacenza “street” in questa funzione:
int create_city(city c_, char* name_, int max_dim_ ){
max_dim_=3;
c_ = (city) malloc(sizeof(city));
c_ -> name = name_;
c_ ->n =0;
c_ ->max_dim = max_dim_ ;
c_ -> poi = (poi*) malloc(sizeof(poi)*max_dim_);// corretto
c_ -> streets = (street**) malloc(sizeof(street*) * max_dim_);
for(int i=0; i < max_dim_; i++){
c_ -> streets [i] = calloc(max_dim_, sizeof(street));
}
c_ ->streets[0][0]->street_exist = true; //segmentation fault qui
return OK;
}