Programmabsturz durch struct?



  • #include <stdio.h>      /* Standart in und output für C */
    #include <conio.h>      /* ermöglicht "getch();" im Dev-Cpp IDE */
    #include <stdbool.h>    /* ermöglicht den variable typ bool, welcher nur true/false erlaubt*/
    #define endl printf("\n") /* macht "endl" zum makro für einen Zeilenumbruch durch printf(); */
    #define tab printf("\t")  /* mact "tab" zum makro für einen Tab durch printf(); */
    
    struct Karten {         /* errichtet Eine Structur die die karten Variablen speichern */
           int x;
           int y;
    }Karte1, Karte2;
    
    int main() {
        int memory[4][4]={   /* Belegung der Koordinaten für Kartensymbole */
                 {3,3,4,4},           /* [0][x] */
                 {5,5,6,6},           /* [1][x] */
                 {11,11,12,12},       /* [2][x] */
                 {14,14,1,1}          /* [3][x] */
        };
        bool error;
    
        system("cls");
        system("color 0a");
        system("title Memory ©by YamiSparrow");
    
        //while(1) {
                 do {
                     error=false;
                     system("cls");
    
                     printf("Zum Beenden des Programms eine Koordinate auf 0 setzen!\n\n");
                     printf("Geben sie die x und y Koordinaten fuer Karte 1 ein: ");
                     scanf("%i",Karte1.x);
                     scanf("%i",Karte1.y);
    
                     if(Karte1.x==0 || Karte1.y==0) return 0;
    
                     printf("Geben sie die x und y Koordinaten fuer Karte 2 ein: ");
                     scanf("%i",Karte2.x);
                     scanf("%i",Karte2.y);
    
                     if(Karte2.x==0 || Karte2.y==0) return 0;
    
                     else if(Karte1.x==Karte2.x && Karte1.y==Karte2.y) {
                          printf("Die Koordinaten Stimmen überein! Bitte neueingeben!");
                          error=true;
                     }
    
                 } while(error==true);     
        //}
    }
    

    das ist bis dato meinen Memory Programm und wenn ich das also im moment starte gibt der mir keinen felher aus, aber er schmiert mir bei der abfrage von "Karte1.x" ab. weiss jemand warum?



  • kleine frage am rande. warum werden im forum die bescheuertsten sachen zensiert?

    v"ôrraus" wird zensiert. jetzt oben bei mir stan"dârt" <- warum?



  • scanf erwartet einen Zeiger, wo man die Daten schreiben kann. Karte1.x ist kein Zeiger.

    scanf("%i", &(Karte1.x));
    ...
    

    ysparrow schrieb:

    kleine frage am rande. warum werden im forum die bescheuertsten sachen zensiert?

    v"ôrraus" wird zensiert. jetzt oben bei mir stan"dârt" <- warum?

    weil voraus nur mit einem r geschrieben wird.
    weil standard mit d und nicht mit t geschrieben wird.



  • supertux schrieb:

    scanf erwartet einen Zeiger, wo man die Daten schreiben kann. Karte1.x ist kein Zeiger.

    scanf("%i", &(Karte1.x));
    ...
    

    natürlich ..
    *sich vor die stirn hau*
    welch banaler fehler.. danke!

    supertux schrieb:

    ysparrow schrieb:

    kleine frage am rande. warum werden im forum die bescheuertsten sachen zensiert?

    v"ôrraus" wird zensiert. jetzt oben bei mir stan"dârt" <- warum?

    weil voraus nur mit einem r geschrieben wird.
    weil standard mit d und nicht mit t geschrieben wird.

    hm stimmt rechtschreibfehler.. aber warum werden rechtschreibfehler zensiert? xD



  • ysparrow schrieb:

    hm stimmt rechtschreibfehler.. aber warum werden rechtschreibfehler zensiert? xD

    eigentlich nur diese 2 Schreibfehler. Es tut einem die Augen weh, wenn man diese 2 liest 😉 naja, ich denke, damit die Leute merken, dass sie diese zwei Wörter falsch schreiben (2 sehr beliebte Fehler im Web)



  • bin im groben eig. auch pingelig. nur.. naja es ist nachts, man will sein programm zum laufen kriegen und denkt sich "schreibe schnell was rein" und dann passt das. xD egal. topic bitte schließen!


Anmelden zum Antworten