[C] Przekazanie tablicy 2-wymiarowej do funkcji
Ostatnio zmodyfikowano 2015-08-17 21:08
Daktyl Temat założony przez niniejszego użytkownika |
[C] Przekazanie tablicy 2-wymiarowej do funkcji » 2015-08-17 16:06:56 Mam problem z przekazywaniem tablicy dwuwymiarowej między funkcjami void show_map( char ** temp, int high, int wide ) { int i, j; for( i = 0; i < high; i++ ) { for( j = 0; j < wide; j++ ) { printf( "%c", temp[ i ][ j ] ); } printf( "\n" ); } }
void load_file() { int high, wide, size; int level; char name[ 9 ] = "Map"; char exclude[ 5 ] = ".txt"; char level2[ 2 ]; char * map; FILE * file; level = 0; while( level < 1 || level > 10 ) { printf( "Wybierz poziom (1-10): " ); scanf( "%d", & level ); if( level < 1 || level > 10 ) { printf( "Podaj poprawny poziom!" ); } } itoa( level, level2, 10 ); strcat( name, level2 ); strcat( name, exclude ); printf( "%s\n", name ); file = fopen( name, "rt" ); fscanf( file, "%d", & high ); fscanf( file, "%d", & wide ); size = high * wide; map =( char * ) malloc( size *( sizeof( char ) ) + 1 ); fscanf( file, "%s", map ); fclose( file ); show_map( & map, high, wide ); free( map ); printf( "\n%d \n%d", high, wide ); }
Program wyrzuca błąd już po odwołaniu do funkcji show_map przy stanie zmiennych i=1, j=0 i poprawnym wypisaniu 1 linii. Pozostałe dane z pliku pobierane są dobrze, więc domyślam się, że problem leży w alokowaniu pamięci. Tylko nie mam w ogóle pomysłu jak to zaalokować poprawnie. Pomoże ktoś? |
|
pekfos |
» 2015-08-17 17:30:47 Gdzie ty tu masz tablicę dwuwymiarową? |
|
Daktyl Temat założony przez niniejszego użytkownika |
» 2015-08-17 20:59:46 Potrzebuje tablicę z funkcji load_file przekazac do show_map jak tablicę dwuwymiarową. |
|
pekfos |
» 2015-08-17 21:08:04 Zaalokuj n wskaźników i wpisz do nich adresy n bloków po m elementów. Tak się tworzy tego typu tablicę dwuwymiarową n na m. |
|
« 1 » |