string terminieren in C

Gast
Also, ich lege den string in der Tabelle ab.
dann greif ich mit: comm_tab[].name auf die elemente zu.
danach steht ja nachdem auf welche Zeile ich zugreife z.B
\011parameter1\011 in comm_tab[].name drin



 comm_struct comm_tab[] = {      // command table
{"parameter1",TYPS16,&parameter1},
{"parameter2",TYPS16,&parameter2},

};


typedef struct{
  char *name;
  u08 type;
  void *ptr;

}comm_struct;
Gast
\011 ist die Oktaldarstellung von 9 (dezimal).
Das ist ein Tabulator.
Der versteckt sich in Deinem Sourcecode wohl hinter resp. vor den
Anführungszeichen Deiner Strings.

Du solltest vielleicht einen anderen Editor verwenden oder aber in
Deinem die Darstellung von Tabs und anderen Sonderzeichen aktivieren
(wenn er das denn kann).


Was für einen beknackten Debugger benutzt Du, der noch Oktaldarstellung
verwendet?
Gast
Ich wollte schon schreiben: "Kann ich nicht nachvollziehen", denn bei
mir ist das alles so korrekt. Aber Rufus Erklärung wäre natürlich noch
drin...
Gast
Na gut, dann mach ichs wohl doch nochmal:

--8<--
#include <stdlib.h>
#include <stdio.h>

typedef signed short s16;

typedef struct
ptrlist_s
{
        unsigned char *name;
  unsigned int type;
        void *ptr;
} ptrlist_t;

ptrlist_t comm_tab[] = {
          {"parameter1", 0x01, NULL},
          {"parameter2", 0x02, NULL} };

int
main(void)
{
        s16 val[128] = {0xAA};
        int i = 0;

        for(i = 0; i < 2; i++)
        {
                comm_tab[i].ptr = &val[i];
                printf("%d: name [%s], ptr @%p, content = 0x%02X\n",

                       i,
                       comm_tab[i].name,
                       comm_tab[i].ptr,
                       *(s16 *)comm_tab[i].ptr);
        }

        return 0;
}
-->8--

Das liefert folgendes Ergebnis:

0: name [parameter1], ptr @0022FE58, content = 0xAA
1: name [parameter2], ptr @0022FE5A, content = 0x00

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.