如何将String分配给C中的变量

问题描述 投票:1回答:2

我创建了一个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";  
                             ^

这里发生了什么?我错了什么?

c string char
2个回答
0
投票

这一行:

char _entityAuthor;

...声明一个char变量。

你需要的是指向charchar *)变量的指针:

char *_entityAuthor;

在使用malloc()之前,您还需要使用strcpy()分配内存。

Here is a tutorial.


2
投票

你的struct字段只有一个char

struct MyEntityObject {  
    char  _entityAuthor;  
}; 

尝试将其更改为动态分配内存的char *char数组,如果您可以对字符串的大小做出可靠的假设。

© www.soinside.com 2019 - 2024. All rights reserved.