Deklaracja wskaźnikow

EV
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 18
0
Kopiuj
#include <iostream>
#include <fstream>
#include <cstdio>

int main();

int PLAYER_INPUT()
{
    int i;
    cout << "Wybierz gracza : "; cin >> i;
    ofstream new_player;
    switch(i)
    {
        case 1: new_player.open("C:\\player1.txt");
                P1_PLAYERS *wsk; wsk = P1_PLAYERS; break;
        case 2: new_player.open("C:\\player2.txt");
                P2_PLAYERS *wsk; wsk = P2_PLAYERS; break;
        default : cout << "Debil..." << endl;
    }

w tym krótkim kodzie wywala to, że wskaźnik nie jest zadeklarowany :

C:\Documents and Settings\Administrator\Desktop\BasketSemestr\playerload.h||In function int PLAYER_LOAD()':| C:\Documents and Settings\Administrator\Desktop\BasketSemestr\playerload.h|32|error: wsk' undeclared (first use this function)|
C:\Documents and Settings\Administrator\Desktop\BasketSemestr\playerload.h|32|error: (Each undeclared identifier is reported only once for each function it appears in.)|
C:\Documents and Settings\Administrator\Desktop\BasketSemestr\playerinput.h||In function int PLAYER_INPUT()':| C:\Documents and Settings\Administrator\Desktop\BasketSemestr\playerinput.h|18|error: wsk' undeclared (first use this function)|
== Build finished: 3 errors, 0 warnings ===

nie mam pojęcia co jest źle, pomóżcie.

z góry dzięki

byku_guzio
  • Rejestracja: dni
  • Ostatnio: dni
0

W switch'u nie możesz deklarować zmiennych i poza tym wtf??:

Kopiuj
P1_PLAYERS *wsk; wsk = P1_PLAYERS
EV
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 18
0

podzieliłem kod na kilka plików .h . tutaj wskaznik ustawiam na poczatek tablicy ktora stworzylem przez struct. ogolnie w tej funkcji wpisuje kilka danych zawodników i zapisuje je do pliku

byku_guzio
  • Rejestracja: dni
  • Ostatnio: dni
0
evensense napisał(a)

...tutaj wskaznik ustawiam na poczatek tablicy ktora stworzylem przez struct...

To w końcu tablicę, czy strukturę, a może tablicę struktur?

Pokaż kod

EV
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 18
0
byku_guzio napisał(a)
evensense napisał(a)

...tutaj wskaznik ustawiam na poczatek tablicy ktora stworzylem przez struct...

To w końcu tablicę, czy strukturę, a może tablicę struktur?
Pokaż kod

No tak, pomyliłem się, jednak wpadłem na to, że nie można (albo bardziej prawodopobone że ja nie wiem jak to zrobić) przypisać wskaźnika do tablicy struktur. tu wycinki kodu :

Kopiuj
 struct player
{
    char name[10];
    char surname[15];
    int age;
    int height;
};
player P1_PLAYERS[4];
player P2_PLAYERS[4];

...

player *wsk;
wsk = P1_PLAYERS;

w takiej postaci nie wywala błędów.

Kopiuj
 P1_PLAYERS *wsk;
wsk = P1_PLAYERS;

w takiej już tak.

byku_guzio
  • Rejestracja: dni
  • Ostatnio: dni
0

Wywala błędy pewnie dlatego, że to jest błąd...

Co to ma oznaczać?:

Kopiuj
P1_PLAYERS *wsk;
EV
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 18
0

hmm no niby wskaźnik na tablice, tylko na który jej indeks :o

już poprawiłem kod, wszystko działa, mam jeszcze jedno pytanie, jak ustawiałem wskaźnik w if'ie, wydawało mi się ze moze tylko działać w obrębie tego if'a, jak zwiększyć "zasięg" jego działania?

byku_guzio
  • Rejestracja: dni
  • Ostatnio: dni
0
evensense napisał(a)

hmm no niby wskaźnik na tablice, tylko na który jej indeks :o

Nie, to tak nie działa.
Wskaźnik będzie funkcjonował w całym zasięgu swojego obowiązywania, nie ma znaczenia gdzie go ustawiasz.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.