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 13:34:31
Wiersz nr. 6 w tym kodzie to #define, a jeżeli dobrze rozumiem Twój log kompilacji, to właśnie w wierszu nr. 6 zgłoszony został błąd.

C/C++
int( * obraz_pgm )[ wobr->wymx ];
To wygląda jak rzutowanie na int-a i próba odczytania z niego elementu o indeksie [wobr->wymx] :)
P-100050
pekfos
» 2013-12-24 13:39:09
To wygląda jak rzutowanie na int-a i próba odczytania z niego elementu o indeksie [wobr->wymx] :)
W zasadzie jest to definicja wskaźnika na tablicę dwuwymiarową.
P-100054
quatromen
Temat założony przez niniejszego użytkownika
» 2013-12-24 13:40:33
to chyba musi być
P-100055
DejaVu
» 2013-12-24 13:46:14
No ale właśnie w tym miejscu dostajesz 'błąd', ponieważ wobr->wymx nie jest stałą, która byłaby znana podczas kompilacji aplikacji.
P-100059
Elaine
» 2013-12-24 13:49:39
Dodaj do opcji kompilacji -std=c99 i kompilator przestanie ostrzegać.
P-100062
quatromen
Temat założony przez niniejszego użytkownika
» 2013-12-24 13:50:53
To nie wiem, skoro wymx jest zadeklarowane w strukturze a wobr wskazuje na to wymx :/
P-100064
DejaVu
» 2013-12-24 13:52:47
wymx to zmienna, a skoro jest to zmienna to musisz/powinieneś dynamicznie alokować pamięć.
P-100065
quatromen
Temat założony przez niniejszego użytkownika
» 2013-12-24 14:00:10
czyli jęsli dobrze rozumiem to zamiast deklarowania wymx jako zmienna statyczna muszę zrobić z niej zmienna dynamiczną
za pomocą :

C/C++
int * wymx;
wymx =( int * ) malloc( sizeof( int ) );
i na koncu oczywiscie zwolnienie pamieci
C/C++
free( wymx );
?? ?? ??
P-100067
1 « 2 » 3
Poprzednia strona Strona 2 z 3 Następna strona