Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C] Przekazanie tablicy 2-wymiarowej do funkcji

Ostatnio zmodyfikowano 2015-08-17 21:08
Autor Wiadomość
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
C/C++
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ś?
P-136424
pekfos
» 2015-08-17 17:30:47
Gdzie ty tu masz tablicę dwuwymiarową?
P-136428
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ą.
P-136441
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.
P-136442
« 1 »
  Strona 1 z 1