Gast
#132193
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
|
Anzeige
|
string terminieren in C
Gast
#132193
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
Gast
#132194
Ähm? Irgendwas Stimmt da nicht so ganz, zeig uns doch mal, wie Du den String erzeugst...
Gast
#132195
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;
Gast
#132196
\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
#132197
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
#132198
ich benutze Code Composer studio, die Entwicklungsumgebung die von TI zum Evaluation Board vom TMS320F2812 geliefert wird
Gast
#132199
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
Gast
#132200
danke....ich hatte noch tabs in der Tabelle...jetzt funktioniert das... Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|