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)