'char []' kann nicht in 'char [16]' konvertiert werden
-
Hallo habe folgendes kleine Programm und weiss nicht wie ich den Fehler beheben
kann:#include <iostream> #include <sstream> using namespace std; void speicher (char Speicher[16]); void main() { string test="Text"; stringstream wandeln; wandeln << test; char hallo[16]; wandeln >> hallo; cout <<"Hallo: " <<hallo <<endl; speicher(hallo); } void speicher(char Speicher[16]) { char lager[16]; lager=Speicher; }
In der Funktion speicher habe ich die Fehlermeldung aus dem Titel diese Beitrages bei lager=Speicher;
-
Statt
lager=Speicher
schreib
memcpy(lager, Speicher, sizeof(lager));
-
Wenn du den Strings kopieren willst, machst du das am Besten mit strcpy().
Die Zuweisung mit Strings geht nämlich nicht mit dem '=' - Operator (Es sei denn, du überschreibst den Operator dementsprechend)
-
derBob schrieb:
Die Zuweisung mit Strings geht nämlich nicht mit dem '=' - Operator (Es sei denn, du überschreibst den Operator dementsprechend)
1. Frage: Wie mache ich das in C?
2. Frage: Angenommen es würde um C++ gehen: Wie mache ich das in C++?
-
@ Shade Of Mine:
zu Frage 1:
--------Sorry, geht meines Wissens nach nur in C++
zu Frage 2:
---------in etwa so:
class CMyString { private: char* text; public: CMyString() { text=new char; ::strcpy(text,"\0"); }; CMyString(char* text) { this->text=new char[strlen(text)+1]; ::strcpy(this->text,text); } CMyString operator=(char* original) { if(text!=NULL){ delete text; } text=new char[strlen(original)+1]; ::strcpy(text,original); return text; } char* GetText(){return text;} }; int main() { CMyString neu; neu="Hallo Welt"; printf(neu.GetText()); return 0; }
-
derBob schrieb:
in etwa so:
Ja, aber es geht hier
1. um C
2. um char*und weder in C noch bei char* lässt sich der op= überladen.
-
Shade Of Mine schrieb:
1. Frage: Wie mache ich das in C?
2. Frage: Angenommen es würde um C++ gehen: Wie mache ich das in C++?Dann frag nicht, wenn es Dich nicht interessiert!
-
derBob schrieb:
Dann frag nicht, wenn es Dich nicht interessiert!
*lol*
Ich wollte dich mit der Frage auf eine Themenverfehlung hinweisen.
-
Danke an groovemaster2002,
dass hat mir weiter geholfen.