Tablica enum i przekazywanie do funkcji
Ostatnio zmodyfikowano 2017-02-07 10:02
Talamak Temat założony przez niniejszego użytkownika |
Tablica enum i przekazywanie do funkcji » 2017-02-07 01:04:32 Dobry wieczór, Mam problem z typem wyliczeniowym enum. Muszę zrobić projekt na zaliczenie - grę kółko i krzyżyk i zostało mi narzucone użycie typu wyliczeniowego enum. Nigdy z tego nie korzystałem, na zajęciach nie było, ale sporo czytałem w internecie i w Symfonii Grębosza. Wydawało się to niezbyt skomplikowane, aczkolwiek już na samym początku zupełnie nie wiem, czemu wszystko się sypie. #include <stdio.h> #include <stdlib.h>
#define ROZMIAR 9
void funkcja( enum pole * plansza ) { * plansza = KOLKO; }
int main() { int i = 0; enum pole { PUSTE = 0, KOLKO = 1, KRZYZYK = 2 }; enum pole plansza[ ROZMIAR ]; for( i = 0; i < ROZMIAR; i++ ) { plansza[ i ] = PUSTE; } funkcja( plansza ); return 0; }
Czy dobrze zadeklarowałem tablicę? Opierając się na mojej wcześniej zdobytej wiedzy, funkcji funkcja wysyłam nazwę tablicy, czyli adres pierwszego wyrazu, czyli wskaźnik. W funkcji odbieram wskaźnik, a już tutaj kompilator zwraca mi warninga: "incompatible pointer type". Nie mówiąc już o następnej linijce, gdzie ja po prostu chciałbym zmienić wartość pierwszego elementu tablicy (w zasadzie zerowego), tam się dzieją już totalne kwiatki i errory - funkcja nie zna wartości KOLKO, czyżby ten enum musiał być zdefiniowany globalnie?! - a ponadto znów problem ze wskaźnikami. Bardzo proszę o pomoc. Pozdrawiam. |
|
michal11 |
» 2017-02-07 10:02:39 Jeżeli enuma deklarujesz w main to on jest tylko tam znany, ma zakres lokalny, twoja funkcja nic o nim nie wie.
|
|
« 1 » |