快速新的运营商问题

Que*_*eer 0 c++

我知道这很容易,我正在寻找一些东西,但这就是我所拥有的......:

typedef struct
{
    char s1[81];
    char s2[81];
    char s3[81];
}Rec;

int main()
{   

   Rec *a[10];

   a[0] = (Rec*)new unsigned char(sizeof(Rec));
   a[0]->s1= "hello";
   printf("a[0] = %s\n",a[0]->s1);
   delete(a[0]);


   getchar();
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

现在,行

a [0] - > s1 ="你好";

抱怨表达式必须是可修改的左值.我很确定这是我如何在我的新操作员系列中投射它并且它需要是一个很长的值或者其他东西但是我不确定要做到这一点的代码......我很容易知道但是是的.任何帮助将非常感激

Ben*_*ley 5

你不能像这样分配给char数组.使用strcpy,或将char数组更改为std::string.

strcpy(a[0]->s1, "hello");
Run Code Online (Sandbox Code Playgroud)

你为什么做这个:

a[0] = (Rec*)new unsigned char(sizeof(Rec));
Run Code Online (Sandbox Code Playgroud)

而不是这个:

a[0] = new Rec;
Run Code Online (Sandbox Code Playgroud)