2016-06-05 3 views
-2

einen neuen Wert zuweist und ich wünsche, dass Sie diese Frage lösen können, ist es ein konstanter Fehler oder eine Unterlassung in meinen Programmen, wenn ich einen Datentyp char auf der Referenzierung in von structs oder abgeleiteten Objekten verwende Klassen. Thsi ist meine Quelle. Im Voraus, danke.Wie man dem Zeigerobjekt C++

struct test{ 
    public: 

     char cadena[20]; 
     int num; 

    }objeto; 

    int main(){ 

    test *POJ = &objeto; 
    (*POJ).cadena="Hello Guys"; 
    POJ->num=23; 
    cout<<(*POJ).cadena<<", "<<POJ->num; 

    } 
+5

Sie benötigen 'strcpy()'. Schließlich würde ich 'std :: string' empfehlen. –

+0

Die häufigere Syntax für '(* POJ) .cadena' ist' POJ-> cadena'. Sie können einem 'char []' kein 'char *' zuweisen. Verwenden Sie stattdessen 'std :: string', es hat korrekte Überladungen, damit das funktioniert. Es wird wahrscheinlich einfacher sein, ein Buch zu lesen (http://stackoverflow.com/a/388282/3484570) anstatt hier zu fragen. – nwp

Antwort

5
(*POJ).cadena="Hello Guys"; 

cadena ist ein Array. Ein Array kann nicht zugewiesen werden.

Entweder machen cadena ein std::string, das ist, was alle Selbstachtung C++ Code verwendet Textzeichenfolge zu speichern, oder verwenden Sie die C strcpy() Funktion rohe Zeichendaten in eine Ebene char Array zu kopieren.