Forum: Compiler & IDEs char* in array


von gast (Gast)


Lesenswert?

volatile char wat[12];

char* pToken = strtok(Buffer, ",");


wie bekomme ich

wat = pToken; ?

von Sven P. (Gast)


Lesenswert?

Garnicht, 'wat' ist ein Vektor und die haben normalerweise eine 
unveränderliche Adresse.

Vielleicht meintest du ja sowas wie 'strcpy' oder 'memcpy'?

von gast (Gast)


Lesenswert?

wie wurde das mit strcpy aussehen?

von Sven P. (Gast)


Lesenswert?

So wie in der Dokumentation zur C-Bibliothek beschrieben.

von gast (Gast)


Lesenswert?

char * strcpy(char *dest, const char * src)

strcpy(*Buffer,pToken); ?

von Sven P. (Gast)


Lesenswert?

strcpy(wat, pToken);

Ist übrigens nicht ganz ungefährlich, wg. Pufferüberlauf und so.

von gast (Gast)


Lesenswert?

Danke! .oO(hätte ich auch drauf kommen koennen :-(  )

Ich koennte noch die laenge pruefen.

darf man da sizeof() verwenden?

von Sven P. (Gast)


Lesenswert?

1
char wat[12];
2
char *token;
3
4
sizeof(wat) /* 12 */
5
sizeof(token) /* 4 auf 32bit-Pentium */

Sonst strlen() oder mit dynamisch-statischem Speicher arbeiten:
1
size_t len = strlen(token);
2
char wat[len + 1];
3
4
strcpy(wat, len);

So oder so ähnlich müsste das nach C99 gehen.

von Gast (Gast)


Lesenswert?

Man kann auch strncpy() verwenden, das begrenzt die Anzahl der zu 
kopierenden Zeichen:

 char *strncpy(char *dest, const char *src, size_t n);

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
Noch kein Account? Hier anmelden.