Einen Wert an ganzen array übergeben



  • ich möchte einen Wert an den ganzen array geben... und ich weiss et wie:

    int Bcd[40]={48}; (geht aber nicht)

    Das Programm soll nen Wert als Bcd ausgeben und soll das Zeichen 0 für alle Array-zeichen speichern (daher 48 für die Ausgabe) jedoch kommt da nichts!

    gut und ich möchte noch jedes 5. zeichen den wert 32 geben (leerzeichen):

    Bcd[4,9,14,19,24,29,34,39]= 32;

    oder (gehen beide ebenfalls nicht)

    for(Pos=0; Pos < 40; Pos+=5){
    Bcd[Pos]=32;}



  • ch möchte einen Wert an den ganzen array geben... und ich weiss et wie:

    int Bcd[40]={48}; (geht aber nicht)

    Das Programm soll nen Wert als Bcd ausgeben und soll das Zeichen 0 für alle Array-zeichen speichern (daher 48 für die Ausgabe) jedoch kommt da nichts!

    du könntest memset() verwenden...

    ...
    #include <string.h>
    ...
    memset(Bcd,48,sizeof(Bcd));
    ...
    

    bitte nicht flamen! 😞 😉



  • Mit memset gehts nicht so einfach weil es jedes Byte mit 48 überschreibt. Ein einzelnes int hat aber 4 Byte (üblicherweise ;))

    int i;
    for (i=0; i<sizeof(Bcd)/sizeof(int); ++i)
         Bcd[i] = 48;
    

    wäre eine korrekte Initialisierung in diesem Falle. Für das Einstreuen der 32 an jeder 5. Stelle bemühe eine if-Abfrage und nutze den Modulo-Operator % 🙂



  • LordJaxom schrieb:

    Mit memset gehts nicht so einfach weil es jedes Byte mit 48 überschreibt. Ein einzelnes int hat aber 4 Byte (üblicherweise ;))

    stimmt, ich habe mich geirrt... 😞
    allerdings funktioniert es mit der zahl null... 😉



  • Flokemon schrieb:

    LordJaxom schrieb:

    Mit memset gehts nicht so einfach weil es jedes Byte mit 48 überschreibt. Ein einzelnes int hat aber 4 Byte (üblicherweise ;))

    stimmt, ich habe mich geirrt... 😞
    allerdings funktioniert es mit der zahl null... 😉

    Ja, weil (int)0 zufällig durch vier 0-Bytes dargestellt wird 😉

    @Sandmaster: Was funktioniert denn an deinem "for(Pos=0;Pos<40;Pos+=5)..." nicht? Normalerweise würde ich genau diese Variante nehmen, um jeden fünften Wert zu setzen.
    (OK, eventuell solltest du den Startwert mal überdenken, aber ansonsten erkenne ich da keinen Fehler)


Anmelden zum Antworten