Zapamiętywanie tablic dwuwymiarowych między funkcjami C
Ostatnio zmodyfikowano 2011-12-30 22:04
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: 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 * ) ); for( i = 0; i < w; i++ ) A[ i ] =( int * ) malloc( k * sizeof( int ) ); 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! |
|
« 1 » |