int **initTabConnections(FILE *pMiejscowosci, city *tabCities, int c) {
int **tabConnections;
int i, j, k;
static char buff[MAXLINELEN];
fseek(pMiejscowosci, 0, SEEK_SET);
tabConnections = (int**) malloc(sizeof(int*) * c);
for (k = 0; k < c; ++k) tabConnections[k] = (int*) malloc(sizeof(int) * c);
i = -1;
while (fgets(buff, MAXLINELEN, pMiejscowosci) != NULL) {
if (!isdigit(buff[0])) ++i;
else {
j = findCityIndex(getCity(buff), tabCities);
tabConnections[i][j] = getDist(buff);
tabConnections[j][i] = tabConnections[i][j];
}
}
return tabConnections;
}
Mam taki problem: otóż wyżej napisana funkcja zmienia mi przekazywaną do niej tablicę tabCities, choć nigdzie czegoś takiego w kodzie nie robię, za pomocą gdb doszedłem do tego, że dzieje się to w linijce:
"for (k = 0; k < c; ++k) tabConnections[k] = (int*) malloc(sizeof(int) * c);"
po jej wykonaniu wartości tablicy tabCities są zmienione na totalnie bezsensowne typu '000000>ppp000sp00000', czy wie może ktoś dlaczego tak się dzieje?
Z góry dziękuję za pomoc i pozdrawiam