Forum: Mikrocontroller und Digitale Elektronik Beinflusung char arrays


von Gert (Gast)


Lesenswert?

1
char array0[4];
2
char array1[1];
3
4
5
array1[0] = array0[0];
6
array1[1] = array0[1];
7
8
printf(" %c  %c  \n", array1[0],array1[1]);

hallo Leute,

ich hätte eine kurze Frage. Oben ist ein Teil meines C-Codes 
dargestellt.
Ich hatte immer ein array0 das wunderbar seine aufgaben erfüllt.
Nun wollte ich einfach zwei Elemente in ein anderes Array (array1) 
umkopieren und ausgeben.
Allerdings verhält sich nun array0 ganz anders. Obwohl ich es doch mit 
den Zeilen oben nicht beeinflüsse.
Ich bin mir sicher das es an dem Codefragment liegt, da alles wieder gut 
ist wenn ich diese Auskommentiere.


Danke für eure Hilfe.

gruß

Gert

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Gert schrieb:
> char array0[4];
> char array1[1];

Wieviele Elemente hat "array1"?


> array1[0] = array0[0];
> array1[1] = array0[1];

Wieviele Elemente von "array1" beschreibst Du hier?

von Decius (Gast)


Lesenswert?

char array1[1];

Auf diese Weise hat array1 nur ein Element array1[0]. Mit array1[1] 
malst Du also unkontrolliert im Speicher rum.

Wenn array1 2 Elemente haben soll, mußt du es als
1
char array1[2];  //Hier steht die Anzahl der Elemente in den Klammern
2
3
array1[0] = 'A'; //Hier steht der Index des Elementes in den Klammern

deklarieren. Dann kannst du auf die Elemente array1[0] und array1[1] 
zugreifen. Der Index zählt bei C von 0 an.

von Gert (Gast)


Lesenswert?

Danke.

Ich dachte char array[6] hätte 7 Elemente (0...6)

Problem behoben. danke

von UR-Schmitt (Gast)


Lesenswert?

Gert schrieb:
> Ich dachte char array[6] hätte 7 Elemente (0...6)

Nicht denken, nachlesen
Du brauchst ein C Buch!

von Gert (Gast)


Lesenswert?

das problem ist, das ich das garn nicht als fehlerquelle wargenommen 
hatte, weil mir das sooooo klar war. So irrt man sich

von Matthias L. (Gast)


Lesenswert?

>Ich dachte char array[6] hätte 7 Elemente (0...6)

Wenn, dann wird das auch so geschrieben:

blablub : ARRAY[0..6] OF BYTE;


So wird bei einigen Sprachen ein Array deklariert, aber nicht in C.

von B. L. (b8limer)


Lesenswert?

char array[n];   // Deklaration mit Anzahl n Feldern

Zugriff von array[0] bis array[n-1]

von Jens (Gast)


Lesenswert?

"Beinflusung"

Geht es hier um "Beine" oder um "Flusen" ?

JJ

Tip: nutze die #inttypes.h char => uint8_t

von ...?? (Gast)


Lesenswert?

Das ist hier kein Kosmetik Forum !

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.