Array über UART ausgeben (C18)

Gast #1434350
Lesenswert?

Pointer sind böse :D

Wenn man den Pointer beim Lesen immer schön weiter inkrementiert, ohne 
darauf zu achten, wo die Daten liegen erhält man im besten Fall einfach 
nur Datensalat.
Beim Schreiben kann es gut passieren, das man ohne Vorsichtsmassnahmen 
andere Daten überschreibt.

Natürlich kann man gerade auf µC's schön Speicherplatz sparen, wenn man 
anstatt Variablen zu definieren und Daten von einer in die andere 
kopiert einen Pointer verwendet. Aber das sollte dann schon soweit 
durchdacht sein, das es zu keinen Irrtümern kommen kann.

Frank
Gast #1434570
Lesenswert?

> einache Erklärung in dem Gebiet?
ja, hier:
char feld[]={0x13,0x14,0x15}

wenn ich jetzt folgendes mache:
*variable = &feld;
dann steht in variable die adresse der speicherzelle, an der das array 
feld beginnt.
lese ich variable aus, bekomme ich 0x13
lese ich variable+1 aus, bekomme ich 0x14.

ein string ist nichts anderes als ein solches array, das auf \0 endet.
wenn ich danach prüfe, laufe ich mit dem pointer nirgens hin, wo ich 
nicht hingehöre.

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