char wert anderem char zuweisen (char* )

Nein, NULL ist gerade zufällig so definiert (bei dir), muss es aber nicht. Es ist auch schonmal als
C++:
(void*)0
definiert oder sonst was.

Und dennoch stimmt deine Aussage nicht, das ein char-Array zwingend Nullterminiert sein muss!

Zur 1. Aussage: Ja, stimmt. Ich hab wohl geschlafen.
Zur 2. Aussage: Müssen muss garnichts, wäre aber schlecht eine Zeichenkette auszugeben ( hier zusammengesetzt durch ein Array ) der kein Terminierungszeichen besitzt.
 
Hallo
Ich habe ein ähnliches Problem,
ich möchte eine Zeichenkette aus dem Main in eine Klasse übergeben, und dann diese klasse in einer Datei abspeichern, das aberspeichern funktioniert, nur die Zeichenkette bereitet mir sorgen, ich habe es mit char * versucht doch beim laden und ausgeben gibt er mir "lustige"Zeichen ich vermute mal eine Adresse...
ich benutze borland c++ builder 6
mein übergabe code ist:
Tur ist meine Klasse,

das steht im main:
cin>>Zeichenkette;
t=new Tur (it, Zeichenkette);

und das die deklaration in der Tur.h/.cpp:
Tur (int iturid, char * name)

habe quasie alle Zeichenketten als char * definiert und auch so übergeben

mfg
 
Zeig mal die definition von deiner Variable "Zeichenkette" ...

Und gewöhn dir direkt mal const an.
 
Du fordest keinen Speicher an und greifst danach auf nen undefinierten Speicherbereich ;) Von d.h. is es normal das da nix anständiges drin steht.

Nimm std::string, dann kannst du beliebige Längen einlesen.
C++:
std::string input;
std::cin >> input;
und was ich mit const meine? Wenn du einen Parameter innerhalb der Funktion nicht veränderst, kennzeichnet man ihn als const.
C++:
void foo(const char* string)
{ std::cout << string << std::endl; }
:) Z.b. gibst dir std::string::c_str einen const char* zurück, damit du nichts direkt am String verändern kannst und somit die Verwaltung des Strings durcheinander bringen könntest!
 
Zurück