Array in einen String konvertieren

Nichts zu danken.
Falls Deine Frage damit geklaert sein sollte denk bitte noch daran den Thread als erledigt zu markieren.

Ich frag mich allerdings warum Du lieber mit einem Zeiger auf ein Stueck Speicher arbeiten willst als mit einem Char-Array. Von der Nutzung her unterscheiden sich die beiden doch im Grunde nicht wirklich.
 
Dennis Wronka hat gesagt.:
Zum Beispiel koennte das ungefaehr so aussehen:
Code:
#include <stdio.h>
#include <stdlib.h>

const char mein_char_array[]="Hallo Welt";
char *mein_zeiger;
int main()
{
 mein_zeiger=malloc(strlen(mein_char_array)+1);
 strncpy(mein_zeiger,mein_char_array,strlen(mein_char_array));
 printf("%s\r\n",mein_zeiger);
 free(mein_zeiger);
}
Hallo, du benutzt strncpy nicht ganz richtig:
entweder:
Code:
 mein_zeiger=malloc(strlen(mein_char_array)+1);
 strncpy(mein_zeiger,mein_char_array,strlen(mein_char_array));
 mein_zeiger[strlen(mein_char_array)] = '\0';
oder
Code:
 mein_zeiger=malloc(strlen(mein_char_array)+1);
 strncpy(mein_zeiger,mein_char_array,strlen(mein_char_array) + 1);

Siehe
http://www.cplusplus.com/ref/cstring/strncpy.html

Gruß

RedWing
 
Ups, ganz vergessen.
Hatte es vorhin so wie gepostet getestet und da es kein Problem bei der Ausgabe gab (also keinen Schrott hinter dem String) dachte ich das waer so okay.
 
Dennis Wronka hat gesagt.:
Ups, ganz vergessen.
Hatte es vorhin so wie gepostet getestet und da es kein Problem bei der Ausgabe gab (also keinen Schrott hinter dem String) dachte ich das waer so okay.

Das liegt wohl daran das malloc das letzte byte zufällig mit 0 initialisiert. Muss aber
nicht so sein :)

Gruß

RedWing
 
Zurück