Czesc. Znalazłem na tym forum wskazówki jak zrobić funkcje alokującą tablice 2 wymiarową. =Funkcja alokująca niby działa, ale jak wracam z funkcji wskaźnik na zaalokowaną pamieć i chce przypisać do map to dostaje SIGSEGV. Możecie pomóc znaleźć błąd ?? Sama funkcja, jej wywołania i "otoczka" poniżej. Z góry dzięki za czas i pomoc.
int** AllocMem( int x, int y)
{
int i;
int** t;
t = (int *) malloc(x * sizeof(int *));
for(i = 0; i < x; i++)
t[i] = (int *) malloc(y * sizeof(int));
return t;
}
mam tez inną funkcje która wykorzystują, tą wyżej :
int loadMap(char* filePath, int*** map, int* rowCount, int* colCount) {
//...
*map = AllocMem(_rowCount, _colCount);
//...
}
Ta funkcja z kolei wywoływana jest :
_map.loadMap = loadMap;
int loaded = _map.loadMap(_map.fileToLoad, &_map.map, &_map.rowCount, &_map.colCount);
gdzie _map to
struct map _map;
Na końcu struktura map to
struct map{
char* fileToLoad;
int (*loadMap)(char* filePath, int*** map, int* rowCount, int* colCount);
int ** map;
int inicjalized;
int rowCount, colCount;
};