NullReferenceException mimo zadeklarowania pamieci

0

Mam o to dwie funkcje:
najpierw wykonuje się ta:

private void tablicaButtonow()
        {
            tab = new Button[x * y];      //alokujemy pamiec do tablicy
            //Tworzymy Buttony w tablicy glownej
            for (int i = 0; i < x; ++i)
            {
                for (int j = 0; j < y; ++j)
                {
                    tab[i + j] = new Button();
                    tab[i + j].Location = new Point(283 + i * 57, 113 + j * 57);
                    tab[i + j].Size = new Size(57, 57);      
                    tab[i + j].BackColor = Color.Transparent;
                    tab[i + j].Tag = "-1";          
                    tab[i + j].Name = "Button" + (i + j).ToString();   
                    Controls.Add(tab[i + j]);
                }
            }
        } 

Potem ta:

private void playNext()
        {
            Random rand = new Random();
            for (int i = 0; i < maxk; ++i)
            {
                int r = rand.Next() % (x * y);
                tab[r].BackColor = Color.Aqua; <<<<<<<----- tu wywala mi blad
            }
        } 

nierozumiem jednego, skoro zaalokowalam wczesniej pamiec, buttony pieknie pokazuja mi sie po uruchomieniu programu to czemu po dodaniu tej linijki wyrzuca mi blad NullReferenceException? Od razu mowie ze tablica tab jest zmienna globalna w klasie

0

A nie wychodzisz przypadkiem indeksem poza zakres tablicy?

0

Powinno być tab[iy+j] albo tab[i+jx] zamiast tab[i+j].

0

Nie zauważyłam tak błachego błędu - Dzieki wielkie za pomoc:)

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