Hallo, in meinem string steht immer "\011parameter1\011", obwohl ich eigentlich nur "parameter1" reinschreibe, wie kann ich den string terminieren, damit ich nur "parameter1" stehen habe. danke
Ähm? Irgendwas Stimmt da nicht so ganz, zeig uns doch mal, wie Du den String erzeugst...
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,¶meter1}, {"parameter2",TYPS16,¶meter2}, }; typedef struct{ char *name; u08 type; void *ptr; }comm_struct;
\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?
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...
ich benutze Code Composer studio, die Entwicklungsumgebung die von TI zum Evaluation Board vom TMS320F2812 geliefert wird
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.