Forum: Mikrocontroller und Digitale Elektronik 'unsigned char[33]' from type 'char *'


von Frank (Gast)


Lesenswert?

Hallo, ich möchte einen Text auf einen Display ausgeben. dies 
funktioniert auch. allerdings möchte ich den Text ändern können.
1
unsigned char DisplayData2[33] = "Hallo Welt";

dies und der weitere code bringt mir "Hallo Welt" auf das Display.

jetzt möchte ich das aber ändern können. daher habe ich geschrieben
1
    unsigned char DisplayData2[33];
2
    DisplayData2 = "Hallo Welt";
Das kann er nciht mehr machen und sagt
incompatible types when assigning to type 'unsigned char[33]' from type 
'char *'

aber wieso?
ich habe doch DisplayData2 als unsigned char deklariert.  wieso wird das 
denn in der zweiten zeile zu char *

von Peter II (Gast)


Lesenswert?

Frank schrieb:
> aber wieso?

weil man in C keine strings zuweisen kann. String sollte außerdem char 
sein.
1
char DisplayData2[33];
2
strcpy( DisplayData2, "Hallo Welt" );

von Cyblord -. (cyblord)


Lesenswert?

Frank schrieb:
> Hallo, ich möchte einen Text auf einen Display ausgeben. dies
> funktioniert auch. allerdings möchte ich den Text ändern können.
>
>
1
> unsigned char DisplayData2[33] = "Hallo Welt";
2
>
>
> dies und der weitere code bringt mir "Hallo Welt" auf das Display.
>
> jetzt möchte ich das aber ändern können. daher habe ich geschrieben
>
1
    unsigned char DisplayData2[33];
2
>     DisplayData2 = "Hallo Welt";
> Das kann er nciht mehr machen und sagt
> incompatible types when assigning to type 'unsigned char[33]' from type
> 'char *'
>
> aber wieso?
> ich habe doch DisplayData2 als unsigned char deklariert.  wieso wird das
> denn in der zweiten zeile zu char *

Ein char Array kann zu einem Pointer degeneriert werden.

Die Zuweisung geht so nicht mitten im Programm.
Du kannst z.B. strcpy, oder strcat nehmen.

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.