[C] warning: ISO C90 forbids variable length array
Ostatnio zmodyfikowano 2013-12-24 23:06
DejaVu |
» 2013-12-24 14:01:13 int ** obraz_pgm = malloc( sizeof( int * ) * wobr->wymx ); |
|
quatromen Temat założony przez niniejszego użytkownika |
» 2013-12-24 14:05:22 uuu na to bym nie wpadł :( Dzięki |
|
DejaVu |
» 2013-12-24 14:08:29 W zasadzie jest to w połowie poprawne rozwiązanie :P Poprawnie politycznie powinno to być zrobione tak:
int ** obraz_pgm = malloc( sizeof( int * ) * wobr->wymy ); for( x = 0; x < wobr->wymx; ++x ) obraz_pgm[ x ] = malloc( sizeof( int ) * wobr->wymx );
obraz_pgm[ pos_y ][ pos_x ] = 123;
Lepszym rozwiązaniem byłoby zrobienie jednowymiarowej tablicy i obliczanie elementu za pomocą wzoru:
int * obraz_pgm = malloc( sizeof( int ) * wobr->wymx * wobr->wymy ); indeks = pos_y * wobr->wymx + pos_x; obraz_pgm[ indeks ] = 123;
Nie musisz wtedy robić tylu malloców i tym samym nie masz tak mocno pofragmentowanej pamięci. |
|
quatromen Temat założony przez niniejszego użytkownika |
» 2013-12-24 15:52:55 Nie moge sie polapac gdzie mam to stosowac ?? przy wsisywaniu wartosci w tablice czy w funkcjach ?? ?? ?? for( x = 0; x < wobr->wymx; ++x ) obraz_pgm[ x ] = malloc( sizeof( int ) * wobr->wymx );
|
|
pekfos |
» 2013-12-24 16:12:07 int ** obraz_pgm = malloc( sizeof( int * ) * wobr->wymy ); for( x = 0; x < wobr->wymx; ++x ) obraz_pgm[ x ] = malloc( sizeof( int ) * wobr->wymx );
Ten kod tworzy tablicę obraz_pgm. Nie ma sensu tego rozdzielać. |
|
quatromen Temat założony przez niniejszego użytkownika |
» 2013-12-24 22:48:39 przerobiłem wszystko stosując int ** obraz_pgm = malloc( sizeof( int * ) * wobr->wymy ); for( i = 0; i < wobr->wymx; ++i ) obraz_pgm[ i ] = malloc( sizeof( int ) * wobr->wymx );
wszystko pięknie się kompiluje lecz jeśli dam funkcje negacji czy jakąkolwiek inną funkcję wyskakuje okno: close the program :( |
|
DejaVu |
» 2013-12-24 23:00:56 Być może są błędy logiczne w aplikacji, jednak błąd kompilacji został rozwiązany, a o to chodziło w tym temacie. |
|
quatromen Temat założony przez niniejszego użytkownika |
» 2013-12-24 23:06:46 Racja w temacie było o problemie z kompilacja ,i został rozwiazany :).
Przed przerabianiem na Code Bloksie program śmigał bez problemu , zaś na linuksie w xterm kompilator pokazywał błędy. Gdy zostały one rozwiązane i pięknie się kompiluje to program nie działa . Poprostu pięknie tyle czasu na marne ale coż trzeba od nowa szukać błędów logicznych :) Ale i tak dzięki wszystkim za pomoc :) |
|
1 2 « 3 » |