Beinflusung char arrays

Gast #2726860
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
Gast #2726869
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.
Gast #2726904
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren