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

[C] warning: ISO C90 forbids variable length array

Ostatnio zmodyfikowano 2013-12-24 23:06
Autor Wiadomość
DejaVu
» 2013-12-24 14:01:13
int ** obraz_pgm = malloc( sizeof( int * ) * wobr->wymx );
P-100069
quatromen
Temat założony przez niniejszego użytkownika
» 2013-12-24 14:05:22
uuu na to bym nie wpadł :(
Dzięki
P-100071
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:
C/C++
int ** obraz_pgm = malloc( sizeof( int * ) * wobr->wymy );
for( x = 0; x < wobr->wymx; ++x )
     obraz_pgm[ x ] = malloc( sizeof( int ) * wobr->wymx );

//Wówczas możesz pisać:
obraz_pgm[ pos_y ][ pos_x ] = 123;
Lepszym rozwiązaniem byłoby zrobienie jednowymiarowej tablicy i obliczanie elementu za pomocą wzoru:
C/C++
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.
P-100072
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 ?? ?? ??
C/C++
for( x = 0; x < wobr->wymx; ++x )
     obraz_pgm[ x ] = malloc( sizeof( int ) * wobr->wymx );

P-100078
pekfos
» 2013-12-24 16:12:07
C/C++
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ć.
P-100080
quatromen
Temat założony przez niniejszego użytkownika
» 2013-12-24 22:48:39
przerobiłem wszystko stosując
C/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 :(
P-100089
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.
P-100090
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 :)
P-100093
1 2 « 3 »
Poprzednia strona Strona 3 z 3