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

Tablica enum i przekazywanie do funkcji

Ostatnio zmodyfikowano 2017-02-07 10:02
Autor Wiadomość
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.

C/C++
#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 }; //pole moze miec wartosc kolko, krzyzyk albo moze byc puste
   
    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.
P-157431
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.
P-157435
« 1 »
  Strona 1 z 1