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

Zapamiętywanie tablic dwuwymiarowych między funkcjami C

Ostatnio zmodyfikowano 2011-12-30 22:04
Autor Wiadomość
Pirous
Temat założony przez niniejszego użytkownika
Zapamiętywanie tablic dwuwymiarowych między funkcjami C
» 2011-12-30 22:04:55
Witam!
Najpierw trochę kodu:
C/C++
void stworz_macierz( int ** A, int w, int k )
{
    int i, j, n;
    printf( "\n1 - wprowadz wlasna macierz\n2 - wczytaj macierz z pliku\n" );
    scanf( "%d", & n );
   
    if( n == 1 )
    {
        rozmiar_tablicy( A, & w, & k );
       
        A =( int ** ) malloc( w * k * sizeof( int * ) ); /*alokowanie pamieci  A*/
        for( i = 0; i < w; i++ )
             A[ i ] =( int * ) malloc( k * sizeof( int ) ); /*koniec alokowania A*/
       
        wypelnij_tablice( w, k, A );
       
        wyswietl( A, w, k );
       
       
    }
    if( n == 2 )
    {
       
    }
}

void wyswietl( int ** A, int w, int k )
{
    char c;
    int i, j;
    printf( "Czy chcesz wyswietlic utworzona macierz?\n(t/n)\n" );
    c = getchar();
    c = getchar();
    if( c == 't' )
    {
        printf( "\nMacierz %dx%d\n\n", w, k );
       
        for( i = 0; i < w; i++ )
        {
            for( j = 0; j < k; j++ ) printf( "%d ", A[ i ][ j ] );
           
            printf( "\n" );
        }
    }
}

void rozmiar_tablicy( int ** A, int * w, int * k )
{
    printf( "Podaj liczbe kolumn macierzy: " );
    scanf( "%d", w );
    printf( "Podaj liczbe wierszy macierzy: " );
    scanf( "%d", k );
}
void wypelnij_tablice( int w, int k, int ** A )
{
   
    int i, j;
    for( i = 0; i < w; i++ )
    {
        for( j = 0; j < k; j++ )
        {
            int n;
            printf( "Podaj wartosc dla pola [%d][%d]: ", i, j );
            scanf( "%d", & n );
            A[ i ][ j ] = n;
        }
    }
   
}

int main()
{
    int ** A;
    int w, k;
    printf( "Witaj w kalkulatorze macierzy." );
    stworz_macierz( A, & w, & k );
    wybor_dzialania();
}


Jestem w trakcie pisania programu (wiem, nie jest piękny) ale mam pewien problem: chcę otrzymać globalną tablicę dwuwymiarową o nieznanym rozmiarze, ale nie potrafię przekazać wartości tablicy z danymi z powrotem do maina.
Proszę o pomoc!
P-46745
« 1 »
  Strona 1 z 1