in Feld speichern



  • HALLO!!!
    Ich hab ein Problem. Mit dieser funktion:

    int ausgabe(int pos, char letter){
      int i=0;
      int data[8][11]= { {1, 2, 3, 4, 5, 6, 195, 8, 9, 10, 3 },
                         {1, 2, 3, 4, 5, 6, 195, 8, 9, 10, 3 },
                         {1, 2, 3, 4, 5, 6, 195, 8, 9, 10, 3 },
                         {1, 2, 3, 4, 5, 6, 255, 8, 9, 10, 3 },
                         {1, 2, 3, 4, 5, 6, 255, 8, 9, 10, 3 },
                         {1, 2, 3, 4, 5, 6, 195, 8, 9, 10, 3 },
                         {1, 2, 3, 4, 5, 6, 195, 8, 9, 10, 31},
                         {1, 2, 3, 4, 5, 6, 195, 8, 9, 10, 63} };
    
      for(i=0;i<=7;i++){
        zeile[i][pos] = data[letter][pos];
      }
    }
    

    ich finde den fehler nicht aber bei dieser zeile:

    zeile[i][pos] = data[letter][pos];

    speichert er nicht! da wenn ich das zeugs ausgebe lauter s...... steht!

    vl weis jemand von euch was da dran falsch ist.

    mfg
    Gimmli



  • hallo gimmli!

    mir fällt zunächst auf, dass das array mit dem namen 'zeile' in deiner funktion gar nicht dedklariert ist und auch nicht übergeben wird. falls dein code wirklich genau so aussieht, so wundert es mich, dass er überhaupt compiliert wird. ich gehe davon aus, dass du das array korrekt deklariert hast, es aus dem hier geposteten code jedoch aus irgendwelchen gründen gelöscht hast.

    zum eigentlichen problem, ich vermute, dass der fehler dadurch verursacht wird, dass du versuchst, eine positionsangabe in einem array mit einer variablen des formates char zu machen. damit der computer weiss, welches element des arrays du ansteuern willst braucht er meiner meinung nach zwei angaben des formates int, also zum beispiel data[4][2]. ich glaube auch nicht, dass man eine positionsangabe machen kann, in dem man den string '1' als positionsangabe übergibt, da strings meines wissens nach immer im ASCII code gespeichert werden und ich bezweifele, dass die 1 ind ASCII auch wirklich 1 heisst. du weist zeile[i][pos] also den wert zu, der in einem vom programm nich verwendeten teil des speichers liget. dort liegt vermutlich noch irgend eine zufällige zahl, die dann gespeichert wird.

    um den fehler zu beheben musst du also meiner meinung nach die variable letter durch eine andere variable des typs int ersetzen. falls letter vom benutzer eingegeben wird kann das zum bespiel durch einfügen einer if-abfrage nach der eingabe erfolgen.

    ich hoffe, dass ich dir helfen konnte.

    DL



  • Hallo,

    kann es sein, dass data[letter][pos] immer den gleichen Wert hat? 😉



  • ändere mal in der zeile "int ausgabe(int pos, char letter)" das char in ein INT.



  • Danke für eure antworten bin jetzt draufgekommen das ich einen allgemeinen denkfehler drin hatte! sorry das ich euch belästigt habe!


Anmelden zum Antworten