我知道这真的很容易,我正在查看一些东西,但这就是我所拥有的......:
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;
}
现在,行
a[0]->s1= "hello";
提示表达式必须是可修改的左值。我很确定这就是我在我的新运算符(operator)行中转换它的方式并且它需要是一个长值或其他东西但我不确定执行此操作的代码......我知道很容易但是是的。任何帮助将不胜感激
最佳答案
你不能像那样分配给 char 数组。使用 strcpy,或将您的字符数组更改为 std::string
。
strcpy(a[0]->s1, "hello");
你为什么要这样做:
a[0] = (Rec*)new unsigned char(sizeof(Rec));
而不是这个:
a[0] = new Rec;
关于c++ - 快速新运营商问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8186416/