C++ struktur array mit unbekannter Größe

Hallo,

leider funktioniert der Code nicht. :(
Funktioniert er bei euch?

Sobald ich den Spielernamen eingeben will, macht er nicht weiter und meldet Zugriffsverletzung.

Ich verzweifle noch an diesem Programm. :(
 
Mein Fehler. Habe übersehen, dass in der struct ein String ist

Die neuen Zeile sind nochmal geändert:
C++:
// Schweizersystem_Auslosungsprogramm.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
//
 
 
#include "stdafx.h"
#include <iostream>
#include <string>
#include <Windows.h>
#include <vector>
 
 
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
 
    // Variablen
 
        int rundenanzahl;
        int spieleranzahl;
 
    // Strukturen
        struct Spielerdaten
        {
            string name;
            int elo;
            int punkte;
            int buchholz;
        };
 
    // Start
 
        cout << "Ausslosungsprogramm zur Auslosung des Schweizersystems" << endl;
        cout << "Wie viele Spieler spielen mit? "; cin >> spieleranzahl;
        cout << endl << "Wie viele Runden werden gespielt? "; cin >> rundenanzahl;
        cout << endl << endl << endl;
 
        system("PAUSE");
 
        Spielerdaten *Spieler;//ÄNDERUNG
        Spieler=new Spielerdaten[spieleranzahl];//NEUE ZEILE
 
        for (int a = 0; a < spieleranzahl; a++)
        {
            cout << endl << endl << "Name des Spielers: " << endl;
            cin >> Spieler[a].name;
            cout << endl << "Elo des Spielers: " << endl;
            cin >> Spieler[a].elo;          
        }
        cout << "Startrangliste:" << endl << endl << endl;
        Sleep(3000);
 
        // Sortierung
        for(int i=spieleranzahl-1; i>0; i--)
    {
        for (int j=0; j<i; j++)
        {
            if (Spieler[j].elo<Spieler[j+1].elo)
            {
                int Spieler_1 = Spieler[j].elo;
                Spieler[j].elo = Spieler[j+1].elo;
                Spieler[j+1].elo = Spieler_1;
            }
        }
    }
        for (int i=0; i < spieleranzahl; i++)
        {
            cout << Spieler[i].elo << endl;
        }
 
 
                
    // Ende
        delete[] Spieler;//NEUE ZEILE
        getchar();
        system("PAUSE");
        return 0;
}

new und delete machen im Prinzip das Gleiche wie malloc und free, führen aber auch Konstruktoren und Destruktoren von Klassen aus.

Gruß
 
Wow! :D
Super, jetzt funktioniert alles! :D

Vielen herzlichen Dank.
Falls in nächster Zeit damit nochmal Probleme auftreten sollten, melde ich mich wieder.
 

Neue Beiträge

Zurück