[C] Dynamiczna alokacja tablicy tablic 2-elementowych
Ostatnio zmodyfikowano 2012-03-31 18:10
e_marcin Temat założony przez niniejszego użytkownika |
[C] Dynamiczna alokacja tablicy tablic 2-elementowych » 2012-03-31 13:36:07 Witam Potrzebuje tablicy 2-wymiarowej, której pierwszy wymiar nie jest "z góry" znany a drugi tak. Czyli coś w stylu gdzie 9 się zmienia. Potrafię przekazać taką tablice do funkcji void funkcja( int( * tab )[ 2 ] );
ale nie potrafię dynamicznie zaalokować pamięci (nie wiem w jakiej postaci ma być wskaźnik itd.) Czy ktoś, kto potrafi to zrobić mógłby napisać jakiś działający przykład. |
|
DejaVu |
» 2012-03-31 14:03:28 |
|
e_marcin Temat założony przez niniejszego użytkownika |
» 2012-03-31 14:16:07 Chodzi o język C i konkretnie o funkcję malloc(). Tak wygląda pełna alokacja: int ** tab =( int ** ) malloc( X * sizeof( int * ) ); for( i = 0; i < X; i++ ) tab[ i ] =( int * ) malloc( 2 * sizeof( int ) ); No i zamiast linii z drugim malloc'iem musze tam wstawić coś innego, ale nie wiem jak. POMOCY |
|
DejaVu |
» 2012-03-31 15:07:43 Jak nie wiesz co masz wstawić to jak chcesz to napisać? :)
malloc |
|
e_marcin Temat założony przez niniejszego użytkownika |
» 2012-03-31 15:15:38 Eee...chyba logiczne, że jakbym wiedział jak to napisać to bym nie prosił o pomoc. Linia, której nie umiem napisać dokładnie powinna wyglądać tak: int( * tab )[ 2 ] =( RZUTOWANIE ) malloc( 9 * sizeof( ROZMIAR ) );
Nie wiem co wpisać w miejsce RZUTOWANIE i ROZMIAR. |
|
DejaVu |
» 2012-03-31 16:27:52 ...
( int * ) malloc( 9 * sizeof( int ) );
|
|
e_marcin Temat założony przez niniejszego użytkownika |
» 2012-03-31 16:51:54 A nie powinno być: int( * tab )[ 2 ] =( int ** ) malloc( 9 * sizeof( int * ) ); No bo przecież tab to tablica wskaźników, więc powinna być typu int** i przyjmować wartości int *. Tylko problem w tym, że i jeden i drugi sposób kompiluje się z warning'iem: warning: initialization from incompatible pointer type |
|
e_marcin Temat założony przez niniejszego użytkownika |
» 2012-03-31 18:10:34 Próbowałem rozwiązać ten problem na tysiąc sposobów i znalazłem tylko jeden....
...zamiast takiej tablicy użyłem tablicy struktur z dwoma polami int. Alokacja działa bez problemu a i sortowanie(które muszę później wykonać) jest 100 razy łatwiejsze i szybsze do napisania.
Jeżeli ktoś znajdzie rozwiązanie problemu z tą tablicą to niech się pochwali. Pozdro |
|
« 1 » |