Ich schreibe eine Skizze für das Arduino-Board und verwende dafür den folgenden C++ - Code. Ich versuche, Dezimalzahlen in binäre umzuwandeln, indem ich eine Dezimalzahl durch die Dec2bin-Funktion übergebe, die ein Zeichenarray zurückgeben soll, das ich dann ausdrucken werde. Aber ich bin immer die Fehlermeldung:Fehler beim Zurückgeben des Zeichenarrays von der Funktion C++
„Inkompatible Typen Zuordnung von‚char‘auf‚char [0]‘“
bei Funktionsaufruf DEC2BIN und Ich erhalte einen weiteren Fehler bei der Rückkehr die innerhalb der DEC2BIN Funktion sagt:
„Ungültige Konvertierung von‚char *‘auf‚char‘[-fpermissive]“
Wenn jemand könnte bitte helfen sie mir mit diesem wäre es sehr zu schätzen. Ich brauche hier ein Zeichen-Array und keine Zeichenfolge! Vielen Dank!
void loop() {
// put your main code here, to run repeatedly:
if (Serial.available() > 0){
char BinaryNum [0];
int Decimal = Serial.parseInt();
BinaryNum = dec2bin(Decimal);
Serial.println (BinaryNum);
}
}
char dec2bin (int Decimal){
int Remainder; // Remainder of Decimal%2
char Binary [0]; // Character array returned by dec2bin
int x = 0;
while (Decimal != 0){
Remainder = Decimal%2;
Decimal = Decimal/2;
Binary[x] = Remainder;
Serial.println(Binary[x]);
x+=1;
}
return Binary;
}
Keine lokale Variable zurückgeben, in diesem Fall binär. Zuordnen und zurückgeben. – phoxis
'char Binär [0]; 'ist ein Array der Länge 0 (was an sich schon seltsam genug ist). Ohne auf seine Länge zu achten, * versuchst du, ein Array zurückzugeben, in dem du versprochen hast, dass du ein einzelnes "Char" zurückgeben würdest. Nur das zu beheben ist nicht genug, es gibt andere Probleme mit Ihrem Code. – usr2564301
Eine einfache Möglichkeit zur Umwandlung in Binärziffern ist die Verwendung eines 'std :: bitset'.Ich bin mir bewusst, dass Standard-Bibliothek-Unterstützung ein bisschen fehlt standardmäßig auf dem Arduino, aber ich erinnere mich von früheren Arduiono Fragen, dass solche Unterstützung von Dritten verfügbar ist. Einschließlich einiger GitHub-Projekte. –