VLA w C++ i używanie zmiennych poza ich zakresem.

0

blad: name lookup of 'j' changed for ISO 'for' scoping [-fpermissive]
kod:

#include <iostream>
#include <windows.h>
#include <cstdlib>
using namespace std;
int i;
char wybor;                                          // i = rozmiar tablicy//
int main()
{
    cout << "Jaka tablica: " << endl;
    cin >> i;
    string tablica[i];

    cout << "Dane do tablicy: " << endl;

    for (int j=0;j<i;j++)                               // j = nr okienka tablicy//
    {
        cout << "Podaj dane do okienka: "<<j<<endl;
        cin >> tablica[j];
    }
        cout << endl << "Zapisano dane. " << endl << "Wybierz nr okienka by odczytac dane: ";
        cin >> wybor;
        if (wybor==j)

            cout << tablica[j]
        else
            cout << "Nie ma takiego okienka w Twojej tablicy!";
            exit(0);

        getchar();getchar();
    return 0;
}
3

j istnieje tylko wewnątrz pętli, nie możesz używać go poza nią.

    cin >> i;
    string tablica[i];

C++ nie ma VLA. Użyj std::vector

0

Dzieki za odpowiedx. A czy jest jakas mozliwosc odczytu wartosci zmiennej ze zmiennej tablicy, bez znajomosci 'tablicy vectorowej'?

1

Nie rozumiem pytania. Jak masz tablicę, to jej n-ty element odczytujesz za pomocą operatora[].

0

Po prostu nie ogarniam funkcji std::vector a widze ze bez tego sie nie obedzie. Dla leniwych poradnik zmiennej tablicy: http://cpp0x.pl/kursy/Kurs-STL-C++/Kontener-tablicy-std-vector/119

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