Debugging Feldwerte nach /0



  • Hallo,
    ich habe ein Char Feld mit Werten gefüllt. Wenn ich mir beim Debuggen die Werte im Feld anschauen will, zeigt er nur die Werte bis zum ersten /0 welches Teil der Daten ist an. Wie erreiche ich es, das ich beim Debuggen auch die anderen Werte sehe?

    Gruß Alex



  • Hallo

    kommt drauf an, was du mit Array meinst

    char feld[20] = "1234567"; // Hier werden dir alle 20 Stellen angezeigt
    char *kette = "1234567"; // Hier wird dir nur der Teil bis ausschließlich zum ersten /0 angezeigt, weil es so definiert ist
    

    wozu brauchst du die restlichen Stellen? Die sind strenggenommen ja eh nicht gültig.

    bis bald
    akari



  • Danke Akari,
    hilft mir aber noch nicht weiter. Sieht eher so aus

    unsigned char *data=new unsigned char[x];
    

    Die Daten lese ich aus einem File aus und benötige sie um sie anschließend in einen Mikrocontroller zu programmieren und da schreibe ich manchmal auch eine 0 in den Speicher. Wieso sind die Daten ungültig wenn ich doch den Speicher dafür reserviert habe?

    Gruß Alex



  • Hallo

    Wieso sind die Daten ungültig wenn ich doch den Speicher dafür reserviert habe?

    Weil String-Literale durch ein \0 beendet werden. Das ist so definiert.

    Dies betrifft aber nur die Standardausgabe. Du scheinst ja die Daten selber korrekt behandeln zu können, nur die Anzeige im Debugger gelingt nicht. Da wirst du nichts ändern können. Da ist eine eigene Logdatei/funktion zum Debuggen wohl besser.

    bis bald
    akari



  • Hallo Alex,

    wenn du einen MC programmieren willst, so denke ich mir willst Du nicht unbedingt einen Text-String der mit /0 beendet wird verarbeiten. Kann es sein daß nur auf Byte-Daten abziehlst.

    Im Fenster "Liste überwachter Ausdrücke" kannst Du Dein Feld angeben, und unter Wdh-Zähler auch die Länge angeben, die du sehen willst.

    Den Datentyp kannst Du auch auswählen.

    mfG
    rudiS



  • Danke rudiS,

    Liste überwachter Ausdrucke dachte ich auch schon, war aber etwas umständlich alle Feldelemente einzugeben (data[0],data[1],...). Aber mit dem Wdh-Zähler geht das ja richtig komfortabel 👍.
    Ja es handelt sich um Byte Daten.

    Gruß Alex


Anmelden zum Antworten