Lord Kefir
König
Servus!
Ich habe mir vorgenommen, zur Übung ein kleines Kartenspiel für die Konsole zu proggen und habe da ein kleines Problem:
Die Karten des Spielers sollen in einer verlinkten Liste gespeichert werden. Diese ist folgend aufgebaut:
typedef enum {kreuz, pik, herz, karo} typ_farbe;
typedef enum {sieben, acht, neun, zehn, bube, dame,
koenig, as} typ_wert;
typedef struct str_kartenliste {
typ_farbe farbe;
typ_wert wert;
struct str_kartenliste *zgr_next;
} typ_kartenliste;
Das klappt ja auch noch alles wunderbar. Momentan programmiere ich eine Funktion, die eine Karte aus dem Stapel in die Liste einfügt. Der Funktionskopf sieht so aus:
void gib_karte (typ_stapel Kartenstapel, typ_kartenliste
*kopf_spieler)
Der Kartenstapel ist folgend definiert:
typedef struct str_kartenstapel {
typ_farbe farbe;
typ_wert wert;
bool gezogen;
} typ_stapel[32];
Wenn die Liste nun leer ist ('kopf_spieler' also den Wert NULL hat, was beim initialsieren geschieht), soll eine vorher aus dem Stapel ermittelte Karte übergeben werden:
if (kopf_spieler==NULL)
kopf_spieler->farbe=Kartenstapel[n].farbe;
[...]
Das vollständige Programm wird fehlerfrei und ohne Warnungen kompilert. Wenn allerdings das Programm an diese Stelle kommt, stürzt es ab und teilt mir folgendes mit: 'Segmentation fault'
Ich habe auch schon mehrere andere Operationen ausprobiert (z.B. kopf_spieler->farbe=kreuz). Leider ist das Resultat immer gleich...
Hab' wahrscheinlich irgendeinen dummen Fehler gemacht - wäre schön, wenn den jemand finden würde.
Mfg, Lord Kefir
Ich habe mir vorgenommen, zur Übung ein kleines Kartenspiel für die Konsole zu proggen und habe da ein kleines Problem:
Die Karten des Spielers sollen in einer verlinkten Liste gespeichert werden. Diese ist folgend aufgebaut:
typedef enum {kreuz, pik, herz, karo} typ_farbe;
typedef enum {sieben, acht, neun, zehn, bube, dame,
koenig, as} typ_wert;
typedef struct str_kartenliste {
typ_farbe farbe;
typ_wert wert;
struct str_kartenliste *zgr_next;
} typ_kartenliste;
Das klappt ja auch noch alles wunderbar. Momentan programmiere ich eine Funktion, die eine Karte aus dem Stapel in die Liste einfügt. Der Funktionskopf sieht so aus:
void gib_karte (typ_stapel Kartenstapel, typ_kartenliste
*kopf_spieler)
Der Kartenstapel ist folgend definiert:
typedef struct str_kartenstapel {
typ_farbe farbe;
typ_wert wert;
bool gezogen;
} typ_stapel[32];
Wenn die Liste nun leer ist ('kopf_spieler' also den Wert NULL hat, was beim initialsieren geschieht), soll eine vorher aus dem Stapel ermittelte Karte übergeben werden:
if (kopf_spieler==NULL)
kopf_spieler->farbe=Kartenstapel[n].farbe;
[...]
Das vollständige Programm wird fehlerfrei und ohne Warnungen kompilert. Wenn allerdings das Programm an diese Stelle kommt, stürzt es ab und teilt mir folgendes mit: 'Segmentation fault'
Ich habe auch schon mehrere andere Operationen ausprobiert (z.B. kopf_spieler->farbe=kreuz). Leider ist das Resultat immer gleich...
Hab' wahrscheinlich irgendeinen dummen Fehler gemacht - wäre schön, wenn den jemand finden würde.
Mfg, Lord Kefir