Fehler beim Programm
-
In der Funktion zur Berechnung der Prüfsumme ist ein Fehler, eine Variable wurde nicht initialisiert.
Char getCheckSum(char *packet){
char i, checksum;
for( i = 1; i < 8; i++){
checksum += packet[i];
}
checksum = 0xff –checksum;
checksum += 1;
return checksum;
}
-
Ja, das stimmt. Eine Variable wurde nicht initialisiert.
-
Irgendwelche Lösungsansätze?
-
Naja...
Wenn duchecksum
verwendest um alle Werte zusammenzuzählen... wäre es vielleicht eine gute Ideechecksum
davor erst mal auf einen definierten Startwert zu bringen?
-
Ja, initialisiere die Variable.
Welche Variable ist denn wohl gemeint?
-
Ich bin Elektrotechniker kein Informatiker
-
Welchen Wert hat denn
checksum
, bevor dein Code in die for-Schleife geht? In der Schleife addierst du nur auf diesen Wert.
-
Dieser Beitrag wurde gelöscht!
-
@Alexbleybley Der Compiler sagt auch welche Variable gemeint ist.
Lösung: vor dem Benutzen einer Variablen, einen Wert zuweisen.
Tipp: in der Schleife steht
checksum = checksum + packet[i];
Es wird der Wert von checksum genommen und der Wert von packet[i] addiert.
Das Ergebnis wird wieder in checksum abgelegt.Frage: Wo kommt der allererste Wert von checksum her?
-
@DirkB sagte in Fehler beim Programm:
Frage: Wo kommt der allererste Wert von checksum her?
Aus der Cloud! Ausser jemand hat die Cloud geklaut.
-
@hustbaer Gibt es Elektronenwolken im RAM?