我创建了一个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";
^
这里发生了什么?我错了什么?
答案 0 :(得分:2)
您的结构字段只有一个char
struct MyEntityObject {
char _entityAuthor;
};
如果您可以对字符串的大小做出可靠的假设,请尝试将其更改为动态分配内存的char *
或char
数组。
答案 1 :(得分:0)
这一行:
char _entityAuthor;
...声明char
变量。
您需要的是指向char
(char *
)变量的 指针:
char *_entityAuthor;
在使用strcpy()
之前,您还需要使用malloc()
分配内存 。