2016-06-05 4 views
-2

im new here, и я хочу, чтобы вы могли решить этот вопрос, это постоянная ошибка или упущение в моих программах, когда я использую char типа данных при референции в объектах, полученных из struct или классы. Тси - мой источник. In Advance, спасибо.Как назначить значение объекту-указателю 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

Вам нужно 'strcpy()'. В конце концов, я рекомендую использовать 'std :: string'. –

+0

Более распространенный синтаксис для '(* POJ) .cadena' -' POJ-> cadena'. Вы не можете присвоить 'char *' символу 'char []'. Вместо этого используйте 'std :: string', у него есть соответствующие перегрузки, чтобы сделать эту работу. Вероятно, будет легче читать [читать книгу] (http://stackoverflow.com/a/388282/3484570), а не спрашивать здесь. – nwp

ответ

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

cadena является массивом. Массив не может быть назначен.

Либо сделать cadena в std::string, которая является то, что все уважающий C++ кода будет использовать для хранения текстовой строки или использовать функцию C strcpy() для копирования исходных данных символов в обычный char массив.

Смежные вопросы