Как назначить String переменной в C - PullRequest
0 голосов
/ 01 мая 2018

Я создаю Entity объект:

#ifndef ENTITY_H  
#define ENTITY_H  

struct MyEntityObject {  
    char  _entityAuthor;
};  

#endif // ENTITY_H  

Затем я пытаюсь настроить его и использовать:

struct MyEntityObject myEntityObject;  

/* MyEntityObject data specification */  
strcpy(myEntityObject . _entityAuthor, "Shakespear");  

Я получаю эту ошибку:

main.cpp:37: error: invalid conversion from ‘const char*’ to ‘char’ [-fpermissive]  
      myEntityObject . _entityAuthor = "Shakespear";  
                             ^

Что здесь происходит? Что я не так делаю?

Ответы [ 2 ]

0 голосов
/ 01 мая 2018

Эта строка:

char _entityAuthor;

... объявляет переменную char.

Вам нужен указатель на char (char *) переменную:

char *_entityAuthor;

Вам также необходимо выделить память с помощью malloc() перед использованием strcpy().

Вот учебник.

0 голосов
/ 01 мая 2018

Ваше поле структуры - только одно char

struct MyEntityObject {  
    char  _entityAuthor;  
}; 

Попытка изменить его либо на char *, для которого вы динамически выделяете память, либо на массив char, если вы можете делать твердые предположения о размере строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...