Deklaracja wskaźnikow

0
#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

0

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

P1_PLAYERS *wsk; wsk = P1_PLAYERS
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

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

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 :

 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.

 P1_PLAYERS *wsk;
wsk = P1_PLAYERS;

w takiej już tak.

0

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

Co to ma oznaczać?:

P1_PLAYERS *wsk;
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?

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1