Hi Wie kann ich in C18 am besten einen Text der sich in einm Array befindet über UART ausgeben? gibt es eine Möglichkeit, das einfach mit z.B. putc zu machen? Gruß Simon
pointer auf den array-beginn. liefert C freihaus. while(pointer-inhalt), pointer-inhalt ausgeben, pointer inkrementieren. tadaa
das mit Pointer ist aber gefährlich, hat man mir neulich beigebracht.
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
ich hab die Sache mit den Pointer noch nie richtig kapiert. Gibt es irgendwo eine (sehr) einache Erklärung in dem Gebiet?
> 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.
Michael M. schrieb: > aha? erläuterung? Verstanden habe ich es auch nicht, aber man hat es mir so versichert... Beitrag "Re: Hilfe Struct in einem Array"
da wird aber auch nicht auf sinnvolle daten geprüft. da liegt der unterschied. bei einem string weißt du, dass er mit NULL endet.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.