Tablice i ich indeksy

Tablice i ich indeksy
MA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 12
0

Witam, tworze sobie projekt(początki programowania) gry w warcaby, gdzie plansza do gry opiera sie na tablicy dwuwymiarowej, czy wiecie jak zapobiec temu, aby gdy np indeks 8 jest indeksem maksymalnym, to żeby nie przechodziło po np. dodaniu 1 do początku tablicy? mam na myśli to:

Kopiuj
int tab[8][8]{};

to tab[8+1][8] jest rownowazne z tym tab[0][8], da sie temu zapobiec? np jakis warunek itp.

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
1

Wykraczanie poza zakres tablicy jest UB (https://en.cppreference.com/w/cpp/language/ub#Access_out_of_bounds), więc w ogóle nie powinieneś do takiej sytuacji dopuścić.

np jakis warunek itp.

Np. if (index < 8)? ;-p

MA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 11
1

https://en.wikipedia.org/wiki/Segmentation_fault
Chcesz coś zrobić z nieistniejącym miejscem w tablicy

lion137
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5041
1

Użyj modulo (reszta z dzielenia):
tab[8][(8 + 1) % 9] <=> tab[8][0]
jeśli indeks maksymalny wynosi 8, to długość tablicy wynosi 9 (stąd modulo 9).

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.