Variablen vermischen sich

Gast #1294474
Lesenswert?

volatile char latD[1];
volatile char lonD[1];
volatile char course[5]

strncpy(lonD,pToken,1);
myuart_puts(lonD);


Wie kann es hier passieren, dass
ich beim empfangen vom uart 3 zeichen sehe obwohl nur
1 kopiert wurde?
die drei zeichen sind eine mischung aus zwei variablen,
am anfang steht N (Nord, was auch da stehen soll) danach folgen
zwei Zeichen aus einer anderen variable (course{5]).
Gast #1294480
Lesenswert?

myuart_puts(lonD)

wird sehr vermutlich einen String erwarten, und der geht nach 
C-Konvention bis zur nächsten NULL. lonD hat am Ende mit Sicherheit kein 
NULL, da insgesamt nur ein Zeichen lang. Also gibt die Ausgabefunktion 
fröhlich alle folgende Zeichen im Speicher mit aus, bis zur nächsten 
NULL.

Oliver

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