Globales array in C++ bleibt einfach leer?

Hallo,

Also da stimmt so einiges ned ;)

1. Im ship Konstruktor:
Code:
    int posX= xy[1];
    int posY= xy[2];
Das Array xy hat keine Werte. Darüberhinaus fängt ein Array bei 0 an, es sollte eigentlich heissen:
Code:
    int posX= xy[0];
    int posY= xy[1];

2. Dein Funktionsaufruf schifflist(6) führt zu einem Fehler, da dein Array nur bis 5 geht:
Code:
int main (void) 
{

gridzeichnend ();
schifflist(6);
gridausgabe ();
}

weil weiter oben bei der Deklaration:
Code:
int laengen[6]={2,4,1,3,4,2};

Und in schifflist:
Code:
void schifflist (int anzahl){
// hier fehlt Code

    for (i=0;i<=anzahl;i++)

// hier auch

Korrekterweise müsstest du also schifflist( 5 ) in der main als Aufruf nehmen oder in der entsprechenden for-Schleife kleiner-als anstatt kleiner-gleich benutzen ( < statt <= ).

3. Benutz bitte keine Umlaute, das führt zu Fehlern. Z.B. kann mein Eclipse damit nicht umgehen.

4. cout statt printf *hust* :)

Zum eigentlichen Problem:

Dein Programm stürzt im Konstruktor ab, genauer hier:
Code:
    int posX= xy[1];
    int posY= xy[2];
    laenge = a[id];
    if (ausrichtung == 90){
        Grid[posX][posY]='X';
        for (int i=0;i<=laenge;i++){
            Grid[posX+=1][posY] = 'X';
        }
    }

Und so ginge es:
Code:
ship::ship(int a[],int ausrichtung,int id)
{   
    xy[0] = 0;
    xy[1] = 0;
    int posX= xy[0];
    int posY= xy[1];
    laenge = a[id];
    if (ausrichtung == 90){
        Grid[posX][posY]='X';
        for (int i=0;i<=laenge;i++){
            Grid[posX+=1][posY] = 'X';
        }
    }
// hier fehlt Code (...)

Hoffe ich konnte helfen :)
 
Zuletzt bearbeitet:
Oh man ich danke, Das ganze stammt ausner Aufgabe die ich mir selber schwerer gemacht hab als es müsste aber wollte unbedingt mal der Übung halber was mit listen und klassen machen ich danke dir!
 
Zurück
Oben