• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Po dodaniu tablicy string h[8] program przestaje działać

Object Storage Arubacloud
0 głosów
184 wizyt
pytanie zadane 8 marca 2018 w C i C++ przez MKarolS Nowicjusz (200 p.)

Otóż wszystko mi śmiga póki nie dodaję tablicy string h do pętli for i dalszej części kodu:

#include <cstdlib>
#include <iostream>
#include <stdio.h>
using namespace std;

int main()
{
    string a[8];
    string b[8];
    string c[8];
    string d[8];
    string e[8];
    string f[8];
    string g[8];
    string h[8];

    for(int j=1; j<9; j++)
    {
        a[j]='O';
        b[j]=' ';
        c[j]=' ';
        d[j]=' ';
        e[j]=' ';
        f[j]=' ';
        g[j]=' ';
        h[j]='X';
    }

    cout<<"++===++===+===+===+===+===+===+===+===++===================++"<<endl;
    cout<<"|| h || "<<h[1]<<" | "<<h[2]<<" | "<<h[3]<<" | "<<h[4]<<" | "<<h[5]<<" | "<<h[6]<<" | "<<h[7]<<" | "<<h[8]<<" ||  Biala druzyna: O ||"<<endl;
    cout<<"++===++---+---+---+---+---+---+---+---++===================++"<<endl;
    cout<<"|| g || "<<g[1]<<" | "<<g[2]<<" | "<<g[3]<<" | "<<g[4]<<" | "<<g[5]<<" | "<<g[6]<<" | "<<g[7]<<" | "<<g[8]<<" || Czarna druzyna: X ||"<<endl;
    cout<<"++===++---+---+---+---+---+---+---+---++===================++"<<endl;
    cout<<"|| f || "<<f[1]<<" | "<<f[2]<<" | "<<f[3]<<" | "<<f[4]<<" | "<<f[5]<<" | "<<f[6]<<" | "<<f[7]<<" | "<<f[8]<<" ||                   ||"<<endl;
    cout<<"++===++---+---+---+---+---+---+---+---++                   ||"<<endl;
    cout<<"|| e || "<<e[1]<<" | "<<e[2]<<" | "<<e[3]<<" | "<<e[4]<<" | "<<e[5]<<" | "<<e[6]<<" | "<<e[7]<<" | "<<e[8]<<" ||                   ||"<<endl;
    cout<<"++===++---+---+---+---+---+---+---+---++                   ||"<<endl;
    cout<<"|| d || "<<d[1]<<" | "<<d[2]<<" | "<<d[3]<<" | "<<d[4]<<" | "<<d[5]<<" | "<<d[6]<<" | "<<d[7]<<" | "<<d[8]<<" ||                   ||"<<endl;
    cout<<"++===++---+---+---+---+---+---+---+---++                   ||"<<endl;
    cout<<"|| c || "<<c[1]<<" | "<<c[2]<<" | "<<c[3]<<" | "<<c[4]<<" | "<<c[5]<<" | "<<c[6]<<" | "<<c[7]<<" | "<<c[8]<<" ||                   ||"<<endl;
    cout<<"++===++---+---+---+---+---+---+---+---++                   ||"<<endl;
    cout<<"|| b || "<<b[1]<<" | "<<b[2]<<" | "<<b[3]<<" | "<<b[4]<<" | "<<b[5]<<" | "<<b[6]<<" | "<<b[7]<<" | "<<b[8]<<" ||                   ||"<<endl;
    cout<<"++===++---+---+---+---+---+---+---+---++                   ||"<<endl;
    cout<<"|| a || "<<a[1]<<" | "<<a[2]<<" | "<<a[3]<<" | "<<a[4]<<" | "<<a[5]<<" | "<<a[6]<<" | "<<a[7]<<" | "<<a[8]<<" ||                   ||"<<endl;
    cout<<"++===++===+===+===+===+===+===+===+===++===================++"<<endl;
    cout<<"||XXX|| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 ||"<<endl;
    cout<<"++===++===+===+===+===+===+===+===+===++"<<endl;

    return 0;
}

Po usunięciu h[j] z pętli for oraz tekstu dalej, wszystko działa.

2 odpowiedzi

+1 głos
odpowiedź 8 marca 2018 przez adrian17 Ekspert (344,860 p.)
wybrane 8 marca 2018 przez MKarolS
 
Najlepsza
for(int j=1; j<9; j++)

Wychodzisz poza tablicę. Tablica jest indeksowana od 0 do 7, a nie od 1 do 8.

(BTW, jeśli to mają być zawsze tylko pojedyncze znaki jak 'x', to wystarczy char zamiast stringa.)

komentarz 8 marca 2018 przez MKarolS Nowicjusz (200 p.)

No tak, dzięki smiley

Zapomniałem o tym (dawno się nie bawiłem w c++ i teraz postanowiłem do niego wrócić)

I skorzystałem też z rady i podmieniłem string na char (dziwne tylko jest to, że tak właściwie popełniłem ten błąd na wszystkich string, a błąd wyskakiwał dopiero gdy dodawałem tablicę "h", a przed tym wszystkie pozostałe działały jak należy bez jakichkolwiek błędów i wszystko się wyświetlało frown )

Jeszcze raz dzięki i to będzie na tyle

0 głosów
odpowiedź 8 marca 2018 przez Qwerty96 Stary wyjadacz (13,580 p.)
Tablice indeksuje się od zera. Dla tablicy ośmioelementowej indeks musi być w zakresie od 0 do 7. Indeks 8 jest już poza zakresem tablicy.

PS. Dodaj #include <string>

Podobne pytania

0 głosów
4 odpowiedzi 192 wizyt
pytanie zadane 27 października 2015 w C i C++ przez barteku12 Obywatel (1,340 p.)
0 głosów
1 odpowiedź 283 wizyt
pytanie zadane 16 marca 2016 w PHP przez Else Stary wyjadacz (12,260 p.)
0 głosów
1 odpowiedź 278 wizyt
pytanie zadane 30 maja 2016 w C i C++ przez xjakubekx Obywatel (1,280 p.)

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...